Skip to content

Commit a232371

Browse files
hahuja2mfulb
authored andcommitted
chore(agent): add helper function for nr_error_create
1 parent 449c525 commit a232371

File tree

2 files changed

+29
-63
lines changed

2 files changed

+29
-63
lines changed

axiom/nr_errors.c

Lines changed: 29 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -14,38 +14,50 @@
1414
#include "util_strings.h"
1515
#include "util_time.h"
1616

17-
nr_error_t* nr_error_create(int priority,
17+
static nr_error_t* nr_error_create_helper(int priority,
1818
const char* message,
1919
const char* klass,
20+
const char* error_file,
21+
int error_line,
22+
const char* error_context,
23+
int error_no,
2024
const char* stacktrace_json,
2125
const char* span_id,
2226
nrtime_t when) {
2327
nr_error_t* error;
2428

25-
if (0 == message) {
26-
return 0;
27-
}
28-
if (0 == klass) {
29-
return 0;
30-
}
31-
if (0 == stacktrace_json) {
32-
return 0;
33-
}
34-
3529
error = (nr_error_t*)nr_zalloc(sizeof(nr_error_t));
3630
error->priority = priority;
3731
error->when = when;
3832
error->message = nr_strdup(message);
3933
error->klass = nr_strdup(klass);
4034
error->stacktrace_json = nr_strdup(stacktrace_json);
41-
error->option = 0;
35+
if (NULL != error_file && NULL != error_context) {
36+
error->error_file = nr_strdup(error_file);
37+
error->error_line = error_line;
38+
error->error_context = nr_strdup(error_context);
39+
error->error_no = error_no;
40+
}
4241

4342
if (NULL != span_id) {
4443
error->span_id = nr_strdup(span_id);
4544
}
4645
return error;
4746
}
4847

48+
nr_error_t* nr_error_create(int priority,
49+
const char* message,
50+
const char* klass,
51+
const char* stacktrace_json,
52+
const char* span_id,
53+
nrtime_t when) {
54+
if (0 == message || 0 == klass || 0 == stacktrace_json) {
55+
return 0;
56+
}
57+
return nr_error_create_helper(priority, message, klass, NULL, 0, NULL, 0,
58+
stacktrace_json, span_id, when);
59+
}
60+
4961
nr_error_t* nr_error_create_additional_params(int priority,
5062
const char* message,
5163
const char* klass,
@@ -56,31 +68,12 @@ nr_error_t* nr_error_create_additional_params(int priority,
5668
const char* stacktrace_json,
5769
const char* span_id,
5870
nrtime_t when) {
59-
nr_error_t* error;
60-
6171
if (0 == message || 0 == klass || 0 == error_file || 0 == error_context
6272
|| 0 == stacktrace_json) {
6373
return 0;
6474
}
65-
66-
error = (nr_error_t*)nr_zalloc(sizeof(nr_error_t));
67-
error->priority = priority;
68-
error->when = when;
69-
error->message = nr_strdup(message);
70-
error->klass = nr_strdup(klass);
71-
error->error_file = nr_strdup(error_file);
72-
error->error_line = error_line;
73-
error->error_context = nr_strdup(error_context);
74-
error->error_no = error_no;
75-
76-
error->stacktrace_json = nr_strdup(stacktrace_json);
77-
78-
if (NULL != span_id) {
79-
error->span_id = nr_strdup(span_id);
80-
}
81-
82-
error->option = 1;
83-
return error;
75+
return nr_error_create_helper(priority, message, klass, error_file, error_line, error_context, error_no,
76+
stacktrace_json, span_id, when);
8477
}
8578

8679
const char* nr_error_get_message(const nr_error_t* error) {
@@ -125,13 +118,6 @@ int nr_error_get_no(const nr_error_t* error) {
125118
return error->error_no;
126119
}
127120

128-
int nr_error_get_option(const nr_error_t* error) {
129-
if (NULL == error) {
130-
return 0;
131-
}
132-
return error->option;
133-
}
134-
135121
nrtime_t nr_error_get_time(const nr_error_t* error) {
136122
if (NULL == error) {
137123
return 0;
@@ -167,25 +153,10 @@ void nr_error_destroy(nr_error_t** error_ptr) {
167153
nr_free(error->klass);
168154
nr_free(error->span_id);
169155
nr_free(error->stacktrace_json);
170-
nr_realfree((void**)error_ptr);
171-
}
172-
173-
void nr_error_destroy_additional_params(nr_error_t** error_ptr) {
174-
nr_error_t* error;
175-
176-
if (0 == error_ptr) {
177-
return;
156+
if ((NULL != error->error_file) && (NULL != error->error_context)) {
157+
nr_free(error->error_file);
158+
nr_free(error->error_context);
178159
}
179-
error = *error_ptr;
180-
if (0 == error) {
181-
return;
182-
}
183-
nr_free(error->message);
184-
nr_free(error->klass);
185-
nr_free(error->error_file);
186-
nr_free(error->error_context);
187-
nr_free(error->span_id);
188-
nr_free(error->stacktrace_json);
189160
nr_realfree((void**)error_ptr);
190161
}
191162

axiom/nr_errors.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -149,11 +149,6 @@ extern int nr_error_priority(const nr_error_t* error);
149149
*/
150150
extern void nr_error_destroy(nr_error_t** error_ptr);
151151

152-
/*
153-
* Purpose : Destroys an error with extra parameters, freeing all of its associated memory.
154-
*/
155-
extern void nr_error_destroy_additional_params(nr_error_t** error_ptr);
156-
157152
/*
158153
* Purpose : Turn an error into the JSON format expected by the 'error_v1'
159154
* command. Returns NULL if an error occurs.

0 commit comments

Comments
 (0)