Skip to content

Commit 8cd73e4

Browse files
committed
[c] move model from int to int*
1 parent 7970d4b commit 8cd73e4

2 files changed

Lines changed: 97 additions & 12 deletions

File tree

modules/openapi-generator/src/main/resources/C-libcurl/model-body.mustache

Lines changed: 93 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -153,10 +153,10 @@ static {{classname}}_t *{{classname}}_create_internal(
153153
{{/isPrimitiveType}}
154154
{{#isPrimitiveType}}
155155
{{#isNumeric}}
156-
{{datatype}} {{name}}{{^-last}},{{/-last}}
156+
{{datatype}} *{{name}}{{^-last}},{{/-last}}
157157
{{/isNumeric}}
158158
{{#isBoolean}}
159-
{{datatype}} {{name}}{{^-last}},{{/-last}}
159+
{{datatype}} *{{name}}{{^-last}},{{/-last}}
160160
{{/isBoolean}}
161161
{{#isEnum}}
162162
{{#isString}}
@@ -201,8 +201,43 @@ static {{classname}}_t *{{classname}}_create_internal(
201201
if (!{{classname}}_local_var) {
202202
return NULL;
203203
}
204+
memset({{classname}}_local_var, 0, sizeof({{classname}}_t));
204205
{{#vars}}
206+
{{^isContainer}}
207+
{{#isPrimitiveType}}
208+
{{#isNumeric}}
209+
if ({{{name}}}) {
210+
{{classname}}_local_var->{{{name}}} = malloc(sizeof({{datatype}}));
211+
if (!{{classname}}_local_var->{{{name}}}) {
212+
{{classname}}_free({{classname}}_local_var);
213+
return NULL;
214+
}
215+
*{{classname}}_local_var->{{{name}}} = *{{{name}}};
216+
}
217+
{{/isNumeric}}
218+
{{#isBoolean}}
219+
if ({{{name}}}) {
220+
{{classname}}_local_var->{{{name}}} = malloc(sizeof({{datatype}}));
221+
if (!{{classname}}_local_var->{{{name}}}) {
222+
{{classname}}_free({{classname}}_local_var);
223+
return NULL;
224+
}
225+
*{{classname}}_local_var->{{{name}}} = *{{{name}}};
226+
}
227+
{{/isBoolean}}
228+
{{^isNumeric}}
229+
{{^isBoolean}}
230+
{{classname}}_local_var->{{{name}}} = {{{name}}};
231+
{{/isBoolean}}
232+
{{/isNumeric}}
233+
{{/isPrimitiveType}}
234+
{{^isPrimitiveType}}
235+
{{classname}}_local_var->{{{name}}} = {{{name}}};
236+
{{/isPrimitiveType}}
237+
{{/isContainer}}
238+
{{#isContainer}}
205239
{{classname}}_local_var->{{{name}}} = {{{name}}};
240+
{{/isContainer}}
206241
{{/vars}}
207242

208243
{{classname}}_local_var->_library_owned = 1;
@@ -243,10 +278,10 @@ __attribute__((deprecated)) {{classname}}_t *{{classname}}_create(
243278
{{/isPrimitiveType}}
244279
{{#isPrimitiveType}}
245280
{{#isNumeric}}
246-
{{datatype}} {{name}}{{^-last}},{{/-last}}
281+
{{datatype}} *{{name}}{{^-last}},{{/-last}}
247282
{{/isNumeric}}
248283
{{#isBoolean}}
249-
{{datatype}} {{name}}{{^-last}},{{/-last}}
284+
{{datatype}} *{{name}}{{^-last}},{{/-last}}
250285
{{/isBoolean}}
251286
{{#isEnum}}
252287
{{#isString}}
@@ -344,6 +379,18 @@ void {{classname}}_free({{classname}}_t *{{classname}}) {
344379
{{/isFreeFormObject}}
345380
{{/isPrimitiveType}}
346381
{{#isPrimitiveType}}
382+
{{#isNumeric}}
383+
if ({{{classname}}}->{{{name}}}) {
384+
free({{{classname}}}->{{{name}}});
385+
{{classname}}->{{name}} = NULL;
386+
}
387+
{{/isNumeric}}
388+
{{#isBoolean}}
389+
if ({{{classname}}}->{{{name}}}) {
390+
free({{{classname}}}->{{{name}}});
391+
{{classname}}->{{name}} = NULL;
392+
}
393+
{{/isBoolean}}
347394
{{^isEnum}}
348395
{{#isString}}
349396
if ({{{classname}}}->{{{name}}}) {
@@ -454,12 +501,12 @@ cJSON *{{classname}}_convertToJSON({{classname}}_t *{{classname}}) {
454501
{{^isContainer}}
455502
{{#isPrimitiveType}}
456503
{{#isNumeric}}
457-
if(cJSON_AddNumberToObject(item, "{{{baseName}}}", {{{classname}}}->{{{name}}}) == NULL) {
504+
if(cJSON_AddNumberToObject(item, "{{{baseName}}}", *{{{classname}}}->{{{name}}}) == NULL) {
458505
goto fail; //Numeric
459506
}
460507
{{/isNumeric}}
461508
{{#isBoolean}}
462-
if(cJSON_AddBoolToObject(item, "{{{baseName}}}", {{{classname}}}->{{{name}}}) == NULL) {
509+
if(cJSON_AddBoolToObject(item, "{{{baseName}}}", *{{{classname}}}->{{{name}}}) == NULL) {
463510
goto fail; //Bool
464511
}
465512
{{/isBoolean}}
@@ -700,6 +747,18 @@ fail:
700747
{{/isFreeFormObject}}
701748
{{/isModel}}
702749
{{/isPrimitiveType}}
750+
{{#isPrimitiveType}}
751+
{{#isNumeric}}
752+
// define the local variable for {{{classname}}}->{{{name}}}
753+
{{datatype}} *{{name}}_local_var = NULL;
754+
755+
{{/isNumeric}}
756+
{{#isBoolean}}
757+
// define the local variable for {{{classname}}}->{{{name}}}
758+
{{datatype}} *{{name}}_local_var = NULL;
759+
760+
{{/isBoolean}}
761+
{{/isPrimitiveType}}
703762
{{/isContainer}}
704763
{{/vars}}
705764
{{#vars}}
@@ -722,13 +781,25 @@ fail:
722781
{
723782
goto end; //Numeric
724783
}
784+
{{name}}_local_var = malloc(sizeof({{datatype}}));
785+
if(!{{name}}_local_var)
786+
{
787+
goto end;
788+
}
789+
*{{name}}_local_var = {{{name}}}->valuedouble;
725790
{{/isNumeric}}
726791
{{#isBoolean}}
727792
{{^required}}if ({{{name}}}) { {{/required}}
728793
if(!cJSON_IsBool({{{name}}}))
729794
{
730795
goto end; //Bool
731796
}
797+
{{name}}_local_var = malloc(sizeof({{datatype}}));
798+
if(!{{name}}_local_var)
799+
{
800+
goto end;
801+
}
802+
*{{name}}_local_var = {{{name}}}->valueint;
732803
{{/isBoolean}}
733804
{{#isEnum}}
734805
{{#isString}}
@@ -977,10 +1048,10 @@ fail:
9771048
{{/isPrimitiveType}}
9781049
{{#isPrimitiveType}}
9791050
{{#isNumeric}}
980-
{{^required}}{{{name}}} ? {{/required}}{{{name}}}->valuedouble{{^required}} : 0{{/required}}{{^-last}},{{/-last}}
1051+
{{name}}_local_var{{^-last}},{{/-last}}
9811052
{{/isNumeric}}
9821053
{{#isBoolean}}
983-
{{^required}}{{{name}}} ? {{/required}}{{{name}}}->valueint{{^required}} : 0{{/required}}{{^-last}},{{/-last}}
1054+
{{name}}_local_var{{^-last}},{{/-last}}
9841055
{{/isBoolean}}
9851056
{{#isEnum}}
9861057
{{#isString}}
@@ -1046,6 +1117,20 @@ end:
10461117
{{/isFreeFormObject}}
10471118
{{/isModel}}
10481119
{{/isPrimitiveType}}
1120+
{{#isPrimitiveType}}
1121+
{{#isNumeric}}
1122+
if ({{{name}}}_local_var) {
1123+
free({{{name}}}_local_var);
1124+
{{{name}}}_local_var = NULL;
1125+
}
1126+
{{/isNumeric}}
1127+
{{#isBoolean}}
1128+
if ({{{name}}}_local_var) {
1129+
free({{{name}}}_local_var);
1130+
{{{name}}}_local_var = NULL;
1131+
}
1132+
{{/isBoolean}}
1133+
{{/isPrimitiveType}}
10491134
{{/isContainer}}
10501135
{{#isContainer}}
10511136
{{#isArray}}

modules/openapi-generator/src/main/resources/C-libcurl/model-header.mustache

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,10 +110,10 @@ typedef struct {{classname}}_t {
110110
{{/isPrimitiveType}}
111111
{{#isPrimitiveType}}
112112
{{#isNumeric}}
113-
{{datatype}} {{name}}; //numeric
113+
{{datatype}} *{{name}}; //numeric
114114
{{/isNumeric}}
115115
{{#isBoolean}}
116-
{{datatype}} {{name}}; //boolean
116+
{{datatype}} *{{name}}; //boolean
117117
{{/isBoolean}}
118118
{{#isEnum}}
119119
{{#isString}}
@@ -191,10 +191,10 @@ __attribute__((deprecated)) {{classname}}_t *{{classname}}_create(
191191
{{/isPrimitiveType}}
192192
{{#isPrimitiveType}}
193193
{{#isNumeric}}
194-
{{datatype}} {{name}}{{^-last}},{{/-last}}
194+
{{datatype}} *{{name}}{{^-last}},{{/-last}}
195195
{{/isNumeric}}
196196
{{#isBoolean}}
197-
{{datatype}} {{name}}{{^-last}},{{/-last}}
197+
{{datatype}} *{{name}}{{^-last}},{{/-last}}
198198
{{/isBoolean}}
199199
{{#isEnum}}
200200
{{#isString}}

0 commit comments

Comments
 (0)