mirror of
				https://github.com/OpenAPITools/openapi-generator.git
				synced 2025-10-31 08:43:45 +00:00 
			
		
		
		
	Fix a few issues with the C generator (part 8) (#20378)
* [C] Deprecate *_create() to avoid *_free() confusion The behaviour of *_free() doesn't match *_create(), so the user should avoid using them together. But they still need *_free() to clean up library-allocated objects, so add a _library_owned flag to each struct as an attempt to tell them apart. This isn't perfect though, because the user may neglect to zero the field, but they would still see a warning once in a while so it serves its purpose. To prevent the new deprecation warnings (intended for the user) from showing up during the library build itself, define a new family of *_create_internal() functions, and turn *_create() into simple wrappers. * Update samples * add eafer to c technical committee --------- Co-authored-by: William Cheng <wing328hk@gmail.com>
This commit is contained in:
		
							parent
							
								
									85c81bee5b
								
							
						
					
					
						commit
						e154903743
					
				| @ -1210,7 +1210,7 @@ If you want to join the committee, please kindly apply by sending an email to te | |||||||
| | Android               | @jaz-ah (2017/09)                                                                                                                                                                                                                                     | | | Android               | @jaz-ah (2017/09)                                                                                                                                                                                                                                     | | ||||||
| | Apex                  |                                                                                                                                                                                                                                                       | | | Apex                  |                                                                                                                                                                                                                                                       | | ||||||
| | Bash                  | @frol (2017/07) @bkryza (2017/08) @kenjones-cisco (2017/09)                                                                                                                                                                                           | | | Bash                  | @frol (2017/07) @bkryza (2017/08) @kenjones-cisco (2017/09)                                                                                                                                                                                           | | ||||||
| | C                     | @zhemant (2018/11) @ityuhui (2019/12) @michelealbano (2020/03)                                                                                                                                                                                        | | | C                     | @zhemant (2018/11) @ityuhui (2019/12) @michelealbano (2020/03) @eafer (2024/12)                                                                                                                                                                                        | | ||||||
| | C++                   | @ravinikam (2017/07) @stkrwork (2017/07) @etherealjoy (2018/02) @martindelille (2018/03) @muttleyxd (2019/08)                                                                                                                                         | | | C++                   | @ravinikam (2017/07) @stkrwork (2017/07) @etherealjoy (2018/02) @martindelille (2018/03) @muttleyxd (2019/08)                                                                                                                                         | | ||||||
| | C#                    | @mandrean (2017/08) @shibayan (2020/02) @Blackclaws (2021/03) @lucamazzanti (2021/05) @iBicha (2023/07)                                                                                                                                          | | | C#                    | @mandrean (2017/08) @shibayan (2020/02) @Blackclaws (2021/03) @lucamazzanti (2021/05) @iBicha (2023/07)                                                                                                                                          | | ||||||
| | Clojure               |                                                                                                                                                                                                                                                       | | | Clojure               |                                                                                                                                                                                                                                                       | | ||||||
|  | |||||||
| @ -119,7 +119,7 @@ char* {{classname}}_{{name}}_ToString({{projectName}}_{{classVarName}}_{{enumNam | |||||||
|     {{/isContainer}} |     {{/isContainer}} | ||||||
|     {{/vars}} |     {{/vars}} | ||||||
| 
 | 
 | ||||||
| {{classname}}_t *{{classname}}_create( | static {{classname}}_t *{{classname}}_create_internal( | ||||||
|     {{#vars}} |     {{#vars}} | ||||||
|     {{^isContainer}} |     {{^isContainer}} | ||||||
|     {{^isPrimitiveType}} |     {{^isPrimitiveType}} | ||||||
| @ -205,14 +205,103 @@ char* {{classname}}_{{name}}_ToString({{projectName}}_{{classVarName}}_{{enumNam | |||||||
|     {{classname}}_local_var->{{{name}}} = {{{name}}}; |     {{classname}}_local_var->{{{name}}} = {{{name}}}; | ||||||
|     {{/vars}} |     {{/vars}} | ||||||
| 
 | 
 | ||||||
|  |     {{classname}}_local_var->_library_owned = 1; | ||||||
|     return {{classname}}_local_var; |     return {{classname}}_local_var; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | __attribute__((deprecated)) {{classname}}_t *{{classname}}_create( | ||||||
|  |     {{#vars}} | ||||||
|  |     {{^isContainer}} | ||||||
|  |     {{^isPrimitiveType}} | ||||||
|  |     {{#isModel}} | ||||||
|  |     {{#isEnum}} | ||||||
|  |     {{projectName}}_{{classVarName}}_{{enumName}}_e {{name}}{{^-last}},{{/-last}} | ||||||
|  |     {{/isEnum}} | ||||||
|  |     {{^isEnum}} | ||||||
|  |     {{datatype}}_t *{{name}}{{^-last}},{{/-last}} | ||||||
|  |     {{/isEnum}} | ||||||
|  |     {{/isModel}} | ||||||
|  |     {{^isModel}} | ||||||
|  |     {{^isFreeFormObject}} | ||||||
|  |     {{^isEnum}} | ||||||
|  |     {{datatype}}_t *{{name}}{{^-last}},{{/-last}} | ||||||
|  |     {{/isEnum}} | ||||||
|  |     {{#isEnum}} | ||||||
|  |     {{projectName}}_{{dataType}}_{{enumName}}_e {{name}}{{^-last}},{{/-last}} | ||||||
|  |     {{/isEnum}} | ||||||
|  |     {{/isFreeFormObject}} | ||||||
|  |     {{/isModel}} | ||||||
|  |     {{#isUuid}} | ||||||
|  |     {{datatype}} *{{name}}{{^-last}},{{/-last}} | ||||||
|  |     {{/isUuid}} | ||||||
|  |     {{#isEmail}} | ||||||
|  |     {{datatype}} *{{name}}{{^-last}},{{/-last}} | ||||||
|  |     {{/isEmail}} | ||||||
|  |     {{#isFreeFormObject}} | ||||||
|  |     {{datatype}}_t *{{name}}{{^-last}},{{/-last}} | ||||||
|  |     {{/isFreeFormObject}} | ||||||
|  |     {{/isPrimitiveType}} | ||||||
|  |     {{#isPrimitiveType}} | ||||||
|  |     {{#isNumeric}} | ||||||
|  |     {{datatype}} {{name}}{{^-last}},{{/-last}} | ||||||
|  |     {{/isNumeric}} | ||||||
|  |     {{#isBoolean}} | ||||||
|  |     {{datatype}} {{name}}{{^-last}},{{/-last}} | ||||||
|  |     {{/isBoolean}} | ||||||
|  |     {{#isEnum}} | ||||||
|  |     {{#isString}} | ||||||
|  |     {{projectName}}_{{classVarName}}_{{enumName}}_e {{name}}{{^-last}},{{/-last}} | ||||||
|  |     {{/isString}} | ||||||
|  |     {{/isEnum}} | ||||||
|  |     {{^isEnum}} | ||||||
|  |     {{#isString}} | ||||||
|  |     {{datatype}} *{{name}}{{^-last}},{{/-last}} | ||||||
|  |     {{/isString}} | ||||||
|  |     {{/isEnum}} | ||||||
|  |     {{#isByteArray}} | ||||||
|  |     {{datatype}} *{{name}}{{^-last}},{{/-last}} | ||||||
|  |     {{/isByteArray}} | ||||||
|  |     {{#isBinary}} | ||||||
|  |     {{datatype}} {{name}}{{^-last}},{{/-last}} | ||||||
|  |     {{/isBinary}} | ||||||
|  |     {{#isDate}} | ||||||
|  |     {{datatype}} *{{name}}{{^-last}},{{/-last}} | ||||||
|  |     {{/isDate}} | ||||||
|  |     {{#isDateTime}} | ||||||
|  |     {{datatype}} *{{name}}{{^-last}},{{/-last}} | ||||||
|  |     {{/isDateTime}} | ||||||
|  |     {{/isPrimitiveType}} | ||||||
|  |     {{/isContainer}} | ||||||
|  |     {{#isContainer}} | ||||||
|  |     {{#isArray}} | ||||||
|  |     {{#isPrimitiveType}} | ||||||
|  |     {{datatype}}_t *{{name}}{{^-last}},{{/-last}} | ||||||
|  |     {{/isPrimitiveType}} | ||||||
|  |     {{^isPrimitiveType}} | ||||||
|  |     {{datatype}}_t *{{name}}{{^-last}},{{/-last}} | ||||||
|  |     {{/isPrimitiveType}} | ||||||
|  |     {{/isArray}} | ||||||
|  |     {{#isMap}} | ||||||
|  |     {{datatype}} {{name}}{{^-last}},{{/-last}} | ||||||
|  |     {{/isMap}} | ||||||
|  |     {{/isContainer}} | ||||||
|  |     {{/vars}} | ||||||
|  |     ) { | ||||||
|  |     return {{classname}}_create_internal ( | ||||||
|  |         {{#vars}} | ||||||
|  |         {{name}}{{^-last}},{{/-last}} | ||||||
|  |         {{/vars}} | ||||||
|  |         ); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| void {{classname}}_free({{classname}}_t *{{classname}}) { | void {{classname}}_free({{classname}}_t *{{classname}}) { | ||||||
|     if(NULL == {{classname}}){ |     if(NULL == {{classname}}){ | ||||||
|         return ; |         return ; | ||||||
|     } |     } | ||||||
|  |     if({{classname}}->_library_owned != 1){ | ||||||
|  |         fprintf(stderr, "WARNING: %s() does NOT free objects allocated by the user\n", "{{classname}}_free"); | ||||||
|  |         return ; | ||||||
|  |     } | ||||||
|     listEntry_t *listEntry; |     listEntry_t *listEntry; | ||||||
|     {{#vars}} |     {{#vars}} | ||||||
|     {{^isContainer}} |     {{^isContainer}} | ||||||
| @ -859,7 +948,7 @@ fail: | |||||||
| 
 | 
 | ||||||
|     {{/vars}} |     {{/vars}} | ||||||
| 
 | 
 | ||||||
|     {{classname}}_local_var = {{classname}}_create ( |     {{classname}}_local_var = {{classname}}_create_internal ( | ||||||
|         {{#vars}} |         {{#vars}} | ||||||
|         {{^isContainer}} |         {{^isContainer}} | ||||||
|         {{^isPrimitiveType}} |         {{^isPrimitiveType}} | ||||||
|  | |||||||
| @ -154,9 +154,10 @@ typedef struct {{classname}}_t { | |||||||
|     {{/isContainer}} |     {{/isContainer}} | ||||||
|     {{/vars}} |     {{/vars}} | ||||||
| 
 | 
 | ||||||
|  |     int _library_owned; // Is the library responsible for freeing this object? | ||||||
| } {{classname}}_t; | } {{classname}}_t; | ||||||
| 
 | 
 | ||||||
| {{classname}}_t *{{classname}}_create( | __attribute__((deprecated)) {{classname}}_t *{{classname}}_create( | ||||||
|     {{#vars}} |     {{#vars}} | ||||||
|     {{^isContainer}} |     {{^isContainer}} | ||||||
|     {{^isPrimitiveType}} |     {{^isPrimitiveType}} | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| api_response_t *api_response_create( | static api_response_t *api_response_create_internal( | ||||||
|     int code, |     int code, | ||||||
|     char *type, |     char *type, | ||||||
|     char *message |     char *message | ||||||
| @ -18,14 +18,30 @@ api_response_t *api_response_create( | |||||||
|     api_response_local_var->type = type; |     api_response_local_var->type = type; | ||||||
|     api_response_local_var->message = message; |     api_response_local_var->message = message; | ||||||
| 
 | 
 | ||||||
|  |     api_response_local_var->_library_owned = 1; | ||||||
|     return api_response_local_var; |     return api_response_local_var; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | __attribute__((deprecated)) api_response_t *api_response_create( | ||||||
|  |     int code, | ||||||
|  |     char *type, | ||||||
|  |     char *message | ||||||
|  |     ) { | ||||||
|  |     return api_response_create_internal ( | ||||||
|  |         code, | ||||||
|  |         type, | ||||||
|  |         message | ||||||
|  |         ); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| void api_response_free(api_response_t *api_response) { | void api_response_free(api_response_t *api_response) { | ||||||
|     if(NULL == api_response){ |     if(NULL == api_response){ | ||||||
|         return ; |         return ; | ||||||
|     } |     } | ||||||
|  |     if(api_response->_library_owned != 1){ | ||||||
|  |         fprintf(stderr, "WARNING: %s() does NOT free objects allocated by the user\n", "api_response_free"); | ||||||
|  |         return ; | ||||||
|  |     } | ||||||
|     listEntry_t *listEntry; |     listEntry_t *listEntry; | ||||||
|     if (api_response->type) { |     if (api_response->type) { | ||||||
|         free(api_response->type); |         free(api_response->type); | ||||||
| @ -113,7 +129,7 @@ api_response_t *api_response_parseFromJSON(cJSON *api_responseJSON){ | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     api_response_local_var = api_response_create ( |     api_response_local_var = api_response_create_internal ( | ||||||
|         code ? code->valuedouble : 0, |         code ? code->valuedouble : 0, | ||||||
|         type && !cJSON_IsNull(type) ? strdup(type->valuestring) : NULL, |         type && !cJSON_IsNull(type) ? strdup(type->valuestring) : NULL, | ||||||
|         message && !cJSON_IsNull(message) ? strdup(message->valuestring) : NULL |         message && !cJSON_IsNull(message) ? strdup(message->valuestring) : NULL | ||||||
|  | |||||||
| @ -23,9 +23,10 @@ typedef struct api_response_t { | |||||||
|     char *type; // string
 |     char *type; // string
 | ||||||
|     char *message; // string
 |     char *message; // string
 | ||||||
| 
 | 
 | ||||||
|  |     int _library_owned; // Is the library responsible for freeing this object?
 | ||||||
| } api_response_t; | } api_response_t; | ||||||
| 
 | 
 | ||||||
| api_response_t *api_response_create( | __attribute__((deprecated)) api_response_t *api_response_create( | ||||||
|     int code, |     int code, | ||||||
|     char *type, |     char *type, | ||||||
|     char *message |     char *message | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| category_t *category_create( | static category_t *category_create_internal( | ||||||
|     long id, |     long id, | ||||||
|     char *name |     char *name | ||||||
|     ) { |     ) { | ||||||
| @ -16,14 +16,28 @@ category_t *category_create( | |||||||
|     category_local_var->id = id; |     category_local_var->id = id; | ||||||
|     category_local_var->name = name; |     category_local_var->name = name; | ||||||
| 
 | 
 | ||||||
|  |     category_local_var->_library_owned = 1; | ||||||
|     return category_local_var; |     return category_local_var; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | __attribute__((deprecated)) category_t *category_create( | ||||||
|  |     long id, | ||||||
|  |     char *name | ||||||
|  |     ) { | ||||||
|  |     return category_create_internal ( | ||||||
|  |         id, | ||||||
|  |         name | ||||||
|  |         ); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| void category_free(category_t *category) { | void category_free(category_t *category) { | ||||||
|     if(NULL == category){ |     if(NULL == category){ | ||||||
|         return ; |         return ; | ||||||
|     } |     } | ||||||
|  |     if(category->_library_owned != 1){ | ||||||
|  |         fprintf(stderr, "WARNING: %s() does NOT free objects allocated by the user\n", "category_free"); | ||||||
|  |         return ; | ||||||
|  |     } | ||||||
|     listEntry_t *listEntry; |     listEntry_t *listEntry; | ||||||
|     if (category->name) { |     if (category->name) { | ||||||
|         free(category->name); |         free(category->name); | ||||||
| @ -87,7 +101,7 @@ category_t *category_parseFromJSON(cJSON *categoryJSON){ | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     category_local_var = category_create ( |     category_local_var = category_create_internal ( | ||||||
|         id ? id->valuedouble : 0, |         id ? id->valuedouble : 0, | ||||||
|         name && !cJSON_IsNull(name) ? strdup(name->valuestring) : NULL |         name && !cJSON_IsNull(name) ? strdup(name->valuestring) : NULL | ||||||
|         ); |         ); | ||||||
|  | |||||||
| @ -22,9 +22,10 @@ typedef struct category_t { | |||||||
|     long id; //numeric
 |     long id; //numeric
 | ||||||
|     char *name; // string
 |     char *name; // string
 | ||||||
| 
 | 
 | ||||||
|  |     int _library_owned; // Is the library responsible for freeing this object?
 | ||||||
| } category_t; | } category_t; | ||||||
| 
 | 
 | ||||||
| category_t *category_create( | __attribute__((deprecated)) category_t *category_create( | ||||||
|     long id, |     long id, | ||||||
|     char *name |     char *name | ||||||
| ); | ); | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| MappedModel_t *MappedModel_create( | static MappedModel_t *MappedModel_create_internal( | ||||||
|     int another_property, |     int another_property, | ||||||
|     char *uuid_property |     char *uuid_property | ||||||
|     ) { |     ) { | ||||||
| @ -16,14 +16,28 @@ MappedModel_t *MappedModel_create( | |||||||
|     MappedModel_local_var->another_property = another_property; |     MappedModel_local_var->another_property = another_property; | ||||||
|     MappedModel_local_var->uuid_property = uuid_property; |     MappedModel_local_var->uuid_property = uuid_property; | ||||||
| 
 | 
 | ||||||
|  |     MappedModel_local_var->_library_owned = 1; | ||||||
|     return MappedModel_local_var; |     return MappedModel_local_var; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | __attribute__((deprecated)) MappedModel_t *MappedModel_create( | ||||||
|  |     int another_property, | ||||||
|  |     char *uuid_property | ||||||
|  |     ) { | ||||||
|  |     return MappedModel_create_internal ( | ||||||
|  |         another_property, | ||||||
|  |         uuid_property | ||||||
|  |         ); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| void MappedModel_free(MappedModel_t *MappedModel) { | void MappedModel_free(MappedModel_t *MappedModel) { | ||||||
|     if(NULL == MappedModel){ |     if(NULL == MappedModel){ | ||||||
|         return ; |         return ; | ||||||
|     } |     } | ||||||
|  |     if(MappedModel->_library_owned != 1){ | ||||||
|  |         fprintf(stderr, "WARNING: %s() does NOT free objects allocated by the user\n", "MappedModel_free"); | ||||||
|  |         return ; | ||||||
|  |     } | ||||||
|     listEntry_t *listEntry; |     listEntry_t *listEntry; | ||||||
|     if (MappedModel->uuid_property) { |     if (MappedModel->uuid_property) { | ||||||
|         free(MappedModel->uuid_property); |         free(MappedModel->uuid_property); | ||||||
| @ -87,7 +101,7 @@ MappedModel_t *MappedModel_parseFromJSON(cJSON *MappedModelJSON){ | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     MappedModel_local_var = MappedModel_create ( |     MappedModel_local_var = MappedModel_create_internal ( | ||||||
|         another_property ? another_property->valuedouble : 0, |         another_property ? another_property->valuedouble : 0, | ||||||
|         uuid_property && !cJSON_IsNull(uuid_property) ? strdup(uuid_property->valuestring) : NULL |         uuid_property && !cJSON_IsNull(uuid_property) ? strdup(uuid_property->valuestring) : NULL | ||||||
|         ); |         ); | ||||||
|  | |||||||
| @ -22,9 +22,10 @@ typedef struct MappedModel_t { | |||||||
|     int another_property; //numeric
 |     int another_property; //numeric
 | ||||||
|     char *uuid_property; // string
 |     char *uuid_property; // string
 | ||||||
| 
 | 
 | ||||||
|  |     int _library_owned; // Is the library responsible for freeing this object?
 | ||||||
| } MappedModel_t; | } MappedModel_t; | ||||||
| 
 | 
 | ||||||
| MappedModel_t *MappedModel_create( | __attribute__((deprecated)) MappedModel_t *MappedModel_create( | ||||||
|     int another_property, |     int another_property, | ||||||
|     char *uuid_property |     char *uuid_property | ||||||
| ); | ); | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| model_with_set_propertes_t *model_with_set_propertes_create( | static model_with_set_propertes_t *model_with_set_propertes_create_internal( | ||||||
|     list_t *tag_set, |     list_t *tag_set, | ||||||
|     list_t *string_set |     list_t *string_set | ||||||
|     ) { |     ) { | ||||||
| @ -16,14 +16,28 @@ model_with_set_propertes_t *model_with_set_propertes_create( | |||||||
|     model_with_set_propertes_local_var->tag_set = tag_set; |     model_with_set_propertes_local_var->tag_set = tag_set; | ||||||
|     model_with_set_propertes_local_var->string_set = string_set; |     model_with_set_propertes_local_var->string_set = string_set; | ||||||
| 
 | 
 | ||||||
|  |     model_with_set_propertes_local_var->_library_owned = 1; | ||||||
|     return model_with_set_propertes_local_var; |     return model_with_set_propertes_local_var; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | __attribute__((deprecated)) model_with_set_propertes_t *model_with_set_propertes_create( | ||||||
|  |     list_t *tag_set, | ||||||
|  |     list_t *string_set | ||||||
|  |     ) { | ||||||
|  |     return model_with_set_propertes_create_internal ( | ||||||
|  |         tag_set, | ||||||
|  |         string_set | ||||||
|  |         ); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| void model_with_set_propertes_free(model_with_set_propertes_t *model_with_set_propertes) { | void model_with_set_propertes_free(model_with_set_propertes_t *model_with_set_propertes) { | ||||||
|     if(NULL == model_with_set_propertes){ |     if(NULL == model_with_set_propertes){ | ||||||
|         return ; |         return ; | ||||||
|     } |     } | ||||||
|  |     if(model_with_set_propertes->_library_owned != 1){ | ||||||
|  |         fprintf(stderr, "WARNING: %s() does NOT free objects allocated by the user\n", "model_with_set_propertes_free"); | ||||||
|  |         return ; | ||||||
|  |     } | ||||||
|     listEntry_t *listEntry; |     listEntry_t *listEntry; | ||||||
|     if (model_with_set_propertes->tag_set) { |     if (model_with_set_propertes->tag_set) { | ||||||
|         list_ForEach(listEntry, model_with_set_propertes->tag_set) { |         list_ForEach(listEntry, model_with_set_propertes->tag_set) { | ||||||
| @ -146,7 +160,7 @@ model_with_set_propertes_t *model_with_set_propertes_parseFromJSON(cJSON *model_ | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     model_with_set_propertes_local_var = model_with_set_propertes_create ( |     model_with_set_propertes_local_var = model_with_set_propertes_create_internal ( | ||||||
|         tag_set ? tag_setList : NULL, |         tag_set ? tag_setList : NULL, | ||||||
|         string_set ? string_setList : NULL |         string_set ? string_setList : NULL | ||||||
|         ); |         ); | ||||||
|  | |||||||
| @ -23,9 +23,10 @@ typedef struct model_with_set_propertes_t { | |||||||
|     list_t *tag_set; //nonprimitive container
 |     list_t *tag_set; //nonprimitive container
 | ||||||
|     list_t *string_set; //primitive container
 |     list_t *string_set; //primitive container
 | ||||||
| 
 | 
 | ||||||
|  |     int _library_owned; // Is the library responsible for freeing this object?
 | ||||||
| } model_with_set_propertes_t; | } model_with_set_propertes_t; | ||||||
| 
 | 
 | ||||||
| model_with_set_propertes_t *model_with_set_propertes_create( | __attribute__((deprecated)) model_with_set_propertes_t *model_with_set_propertes_create( | ||||||
|     list_t *tag_set, |     list_t *tag_set, | ||||||
|     list_t *string_set |     list_t *string_set | ||||||
| ); | ); | ||||||
|  | |||||||
| @ -22,7 +22,7 @@ openapi_petstore_order_STATUS_e order_status_FromString(char* status){ | |||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| order_t *order_create( | static order_t *order_create_internal( | ||||||
|     long id, |     long id, | ||||||
|     long pet_id, |     long pet_id, | ||||||
|     int quantity, |     int quantity, | ||||||
| @ -41,14 +41,36 @@ order_t *order_create( | |||||||
|     order_local_var->status = status; |     order_local_var->status = status; | ||||||
|     order_local_var->complete = complete; |     order_local_var->complete = complete; | ||||||
| 
 | 
 | ||||||
|  |     order_local_var->_library_owned = 1; | ||||||
|     return order_local_var; |     return order_local_var; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | __attribute__((deprecated)) order_t *order_create( | ||||||
|  |     long id, | ||||||
|  |     long pet_id, | ||||||
|  |     int quantity, | ||||||
|  |     char *ship_date, | ||||||
|  |     openapi_petstore_order_STATUS_e status, | ||||||
|  |     int complete | ||||||
|  |     ) { | ||||||
|  |     return order_create_internal ( | ||||||
|  |         id, | ||||||
|  |         pet_id, | ||||||
|  |         quantity, | ||||||
|  |         ship_date, | ||||||
|  |         status, | ||||||
|  |         complete | ||||||
|  |         ); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| void order_free(order_t *order) { | void order_free(order_t *order) { | ||||||
|     if(NULL == order){ |     if(NULL == order){ | ||||||
|         return ; |         return ; | ||||||
|     } |     } | ||||||
|  |     if(order->_library_owned != 1){ | ||||||
|  |         fprintf(stderr, "WARNING: %s() does NOT free objects allocated by the user\n", "order_free"); | ||||||
|  |         return ; | ||||||
|  |     } | ||||||
|     listEntry_t *listEntry; |     listEntry_t *listEntry; | ||||||
|     if (order->ship_date) { |     if (order->ship_date) { | ||||||
|         free(order->ship_date); |         free(order->ship_date); | ||||||
| @ -195,7 +217,7 @@ order_t *order_parseFromJSON(cJSON *orderJSON){ | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     order_local_var = order_create ( |     order_local_var = order_create_internal ( | ||||||
|         id ? id->valuedouble : 0, |         id ? id->valuedouble : 0, | ||||||
|         pet_id ? pet_id->valuedouble : 0, |         pet_id ? pet_id->valuedouble : 0, | ||||||
|         quantity ? quantity->valuedouble : 0, |         quantity ? quantity->valuedouble : 0, | ||||||
|  | |||||||
| @ -34,9 +34,10 @@ typedef struct order_t { | |||||||
|     openapi_petstore_order_STATUS_e status; //enum
 |     openapi_petstore_order_STATUS_e status; //enum
 | ||||||
|     int complete; //boolean
 |     int complete; //boolean
 | ||||||
| 
 | 
 | ||||||
|  |     int _library_owned; // Is the library responsible for freeing this object?
 | ||||||
| } order_t; | } order_t; | ||||||
| 
 | 
 | ||||||
| order_t *order_create( | __attribute__((deprecated)) order_t *order_create( | ||||||
|     long id, |     long id, | ||||||
|     long pet_id, |     long pet_id, | ||||||
|     int quantity, |     int quantity, | ||||||
|  | |||||||
| @ -22,7 +22,7 @@ openapi_petstore_pet_STATUS_e pet_status_FromString(char* status){ | |||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| pet_t *pet_create( | static pet_t *pet_create_internal( | ||||||
|     long id, |     long id, | ||||||
|     category_t *category, |     category_t *category, | ||||||
|     char *name, |     char *name, | ||||||
| @ -41,14 +41,36 @@ pet_t *pet_create( | |||||||
|     pet_local_var->tags = tags; |     pet_local_var->tags = tags; | ||||||
|     pet_local_var->status = status; |     pet_local_var->status = status; | ||||||
| 
 | 
 | ||||||
|  |     pet_local_var->_library_owned = 1; | ||||||
|     return pet_local_var; |     return pet_local_var; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | __attribute__((deprecated)) pet_t *pet_create( | ||||||
|  |     long id, | ||||||
|  |     category_t *category, | ||||||
|  |     char *name, | ||||||
|  |     list_t *photo_urls, | ||||||
|  |     list_t *tags, | ||||||
|  |     openapi_petstore_pet_STATUS_e status | ||||||
|  |     ) { | ||||||
|  |     return pet_create_internal ( | ||||||
|  |         id, | ||||||
|  |         category, | ||||||
|  |         name, | ||||||
|  |         photo_urls, | ||||||
|  |         tags, | ||||||
|  |         status | ||||||
|  |         ); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| void pet_free(pet_t *pet) { | void pet_free(pet_t *pet) { | ||||||
|     if(NULL == pet){ |     if(NULL == pet){ | ||||||
|         return ; |         return ; | ||||||
|     } |     } | ||||||
|  |     if(pet->_library_owned != 1){ | ||||||
|  |         fprintf(stderr, "WARNING: %s() does NOT free objects allocated by the user\n", "pet_free"); | ||||||
|  |         return ; | ||||||
|  |     } | ||||||
|     listEntry_t *listEntry; |     listEntry_t *listEntry; | ||||||
|     if (pet->category) { |     if (pet->category) { | ||||||
|         category_free(pet->category); |         category_free(pet->category); | ||||||
| @ -275,7 +297,7 @@ pet_t *pet_parseFromJSON(cJSON *petJSON){ | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     pet_local_var = pet_create ( |     pet_local_var = pet_create_internal ( | ||||||
|         id ? id->valuedouble : 0, |         id ? id->valuedouble : 0, | ||||||
|         category ? category_local_nonprim : NULL, |         category ? category_local_nonprim : NULL, | ||||||
|         strdup(name->valuestring), |         strdup(name->valuestring), | ||||||
|  | |||||||
| @ -36,9 +36,10 @@ typedef struct pet_t { | |||||||
|     list_t *tags; //nonprimitive container
 |     list_t *tags; //nonprimitive container
 | ||||||
|     openapi_petstore_pet_STATUS_e status; //enum
 |     openapi_petstore_pet_STATUS_e status; //enum
 | ||||||
| 
 | 
 | ||||||
|  |     int _library_owned; // Is the library responsible for freeing this object?
 | ||||||
| } pet_t; | } pet_t; | ||||||
| 
 | 
 | ||||||
| pet_t *pet_create( | __attribute__((deprecated)) pet_t *pet_create( | ||||||
|     long id, |     long id, | ||||||
|     category_t *category, |     category_t *category, | ||||||
|     char *name, |     char *name, | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| tag_t *tag_create( | static tag_t *tag_create_internal( | ||||||
|     long id, |     long id, | ||||||
|     char *name |     char *name | ||||||
|     ) { |     ) { | ||||||
| @ -16,14 +16,28 @@ tag_t *tag_create( | |||||||
|     tag_local_var->id = id; |     tag_local_var->id = id; | ||||||
|     tag_local_var->name = name; |     tag_local_var->name = name; | ||||||
| 
 | 
 | ||||||
|  |     tag_local_var->_library_owned = 1; | ||||||
|     return tag_local_var; |     return tag_local_var; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | __attribute__((deprecated)) tag_t *tag_create( | ||||||
|  |     long id, | ||||||
|  |     char *name | ||||||
|  |     ) { | ||||||
|  |     return tag_create_internal ( | ||||||
|  |         id, | ||||||
|  |         name | ||||||
|  |         ); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| void tag_free(tag_t *tag) { | void tag_free(tag_t *tag) { | ||||||
|     if(NULL == tag){ |     if(NULL == tag){ | ||||||
|         return ; |         return ; | ||||||
|     } |     } | ||||||
|  |     if(tag->_library_owned != 1){ | ||||||
|  |         fprintf(stderr, "WARNING: %s() does NOT free objects allocated by the user\n", "tag_free"); | ||||||
|  |         return ; | ||||||
|  |     } | ||||||
|     listEntry_t *listEntry; |     listEntry_t *listEntry; | ||||||
|     if (tag->name) { |     if (tag->name) { | ||||||
|         free(tag->name); |         free(tag->name); | ||||||
| @ -87,7 +101,7 @@ tag_t *tag_parseFromJSON(cJSON *tagJSON){ | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     tag_local_var = tag_create ( |     tag_local_var = tag_create_internal ( | ||||||
|         id ? id->valuedouble : 0, |         id ? id->valuedouble : 0, | ||||||
|         name && !cJSON_IsNull(name) ? strdup(name->valuestring) : NULL |         name && !cJSON_IsNull(name) ? strdup(name->valuestring) : NULL | ||||||
|         ); |         ); | ||||||
|  | |||||||
| @ -22,9 +22,10 @@ typedef struct tag_t { | |||||||
|     long id; //numeric
 |     long id; //numeric
 | ||||||
|     char *name; // string
 |     char *name; // string
 | ||||||
| 
 | 
 | ||||||
|  |     int _library_owned; // Is the library responsible for freeing this object?
 | ||||||
| } tag_t; | } tag_t; | ||||||
| 
 | 
 | ||||||
| tag_t *tag_create( | __attribute__((deprecated)) tag_t *tag_create( | ||||||
|     long id, |     long id, | ||||||
|     char *name |     char *name | ||||||
| ); | ); | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| user_t *user_create( | static user_t *user_create_internal( | ||||||
|     long id, |     long id, | ||||||
|     char *username, |     char *username, | ||||||
|     char *first_name, |     char *first_name, | ||||||
| @ -32,14 +32,44 @@ user_t *user_create( | |||||||
|     user_local_var->extra = extra; |     user_local_var->extra = extra; | ||||||
|     user_local_var->preference = preference; |     user_local_var->preference = preference; | ||||||
| 
 | 
 | ||||||
|  |     user_local_var->_library_owned = 1; | ||||||
|     return user_local_var; |     return user_local_var; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | __attribute__((deprecated)) user_t *user_create( | ||||||
|  |     long id, | ||||||
|  |     char *username, | ||||||
|  |     char *first_name, | ||||||
|  |     char *last_name, | ||||||
|  |     char *email, | ||||||
|  |     char *password, | ||||||
|  |     char *phone, | ||||||
|  |     int user_status, | ||||||
|  |     list_t* extra, | ||||||
|  |     openapi_petstore_preference__e preference | ||||||
|  |     ) { | ||||||
|  |     return user_create_internal ( | ||||||
|  |         id, | ||||||
|  |         username, | ||||||
|  |         first_name, | ||||||
|  |         last_name, | ||||||
|  |         email, | ||||||
|  |         password, | ||||||
|  |         phone, | ||||||
|  |         user_status, | ||||||
|  |         extra, | ||||||
|  |         preference | ||||||
|  |         ); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| void user_free(user_t *user) { | void user_free(user_t *user) { | ||||||
|     if(NULL == user){ |     if(NULL == user){ | ||||||
|         return ; |         return ; | ||||||
|     } |     } | ||||||
|  |     if(user->_library_owned != 1){ | ||||||
|  |         fprintf(stderr, "WARNING: %s() does NOT free objects allocated by the user\n", "user_free"); | ||||||
|  |         return ; | ||||||
|  |     } | ||||||
|     listEntry_t *listEntry; |     listEntry_t *listEntry; | ||||||
|     if (user->username) { |     if (user->username) { | ||||||
|         free(user->username); |         free(user->username); | ||||||
| @ -320,7 +350,7 @@ user_t *user_parseFromJSON(cJSON *userJSON){ | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     user_local_var = user_create ( |     user_local_var = user_create_internal ( | ||||||
|         id ? id->valuedouble : 0, |         id ? id->valuedouble : 0, | ||||||
|         username && !cJSON_IsNull(username) ? strdup(username->valuestring) : NULL, |         username && !cJSON_IsNull(username) ? strdup(username->valuestring) : NULL, | ||||||
|         first_name && !cJSON_IsNull(first_name) ? strdup(first_name->valuestring) : NULL, |         first_name && !cJSON_IsNull(first_name) ? strdup(first_name->valuestring) : NULL, | ||||||
|  | |||||||
| @ -32,9 +32,10 @@ typedef struct user_t { | |||||||
|     list_t* extra; //map
 |     list_t* extra; //map
 | ||||||
|     openapi_petstore_preference__e preference; //referenced enum
 |     openapi_petstore_preference__e preference; //referenced enum
 | ||||||
| 
 | 
 | ||||||
|  |     int _library_owned; // Is the library responsible for freeing this object?
 | ||||||
| } user_t; | } user_t; | ||||||
| 
 | 
 | ||||||
| user_t *user_create( | __attribute__((deprecated)) user_t *user_create( | ||||||
|     long id, |     long id, | ||||||
|     char *username, |     char *username, | ||||||
|     char *first_name, |     char *first_name, | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| api_response_t *api_response_create( | static api_response_t *api_response_create_internal( | ||||||
|     int code, |     int code, | ||||||
|     char *type, |     char *type, | ||||||
|     char *message |     char *message | ||||||
| @ -18,14 +18,30 @@ api_response_t *api_response_create( | |||||||
|     api_response_local_var->type = type; |     api_response_local_var->type = type; | ||||||
|     api_response_local_var->message = message; |     api_response_local_var->message = message; | ||||||
| 
 | 
 | ||||||
|  |     api_response_local_var->_library_owned = 1; | ||||||
|     return api_response_local_var; |     return api_response_local_var; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | __attribute__((deprecated)) api_response_t *api_response_create( | ||||||
|  |     int code, | ||||||
|  |     char *type, | ||||||
|  |     char *message | ||||||
|  |     ) { | ||||||
|  |     return api_response_create_internal ( | ||||||
|  |         code, | ||||||
|  |         type, | ||||||
|  |         message | ||||||
|  |         ); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| void api_response_free(api_response_t *api_response) { | void api_response_free(api_response_t *api_response) { | ||||||
|     if(NULL == api_response){ |     if(NULL == api_response){ | ||||||
|         return ; |         return ; | ||||||
|     } |     } | ||||||
|  |     if(api_response->_library_owned != 1){ | ||||||
|  |         fprintf(stderr, "WARNING: %s() does NOT free objects allocated by the user\n", "api_response_free"); | ||||||
|  |         return ; | ||||||
|  |     } | ||||||
|     listEntry_t *listEntry; |     listEntry_t *listEntry; | ||||||
|     if (api_response->type) { |     if (api_response->type) { | ||||||
|         free(api_response->type); |         free(api_response->type); | ||||||
| @ -113,7 +129,7 @@ api_response_t *api_response_parseFromJSON(cJSON *api_responseJSON){ | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     api_response_local_var = api_response_create ( |     api_response_local_var = api_response_create_internal ( | ||||||
|         code ? code->valuedouble : 0, |         code ? code->valuedouble : 0, | ||||||
|         type && !cJSON_IsNull(type) ? strdup(type->valuestring) : NULL, |         type && !cJSON_IsNull(type) ? strdup(type->valuestring) : NULL, | ||||||
|         message && !cJSON_IsNull(message) ? strdup(message->valuestring) : NULL |         message && !cJSON_IsNull(message) ? strdup(message->valuestring) : NULL | ||||||
|  | |||||||
| @ -23,9 +23,10 @@ typedef struct api_response_t { | |||||||
|     char *type; // string
 |     char *type; // string
 | ||||||
|     char *message; // string
 |     char *message; // string
 | ||||||
| 
 | 
 | ||||||
|  |     int _library_owned; // Is the library responsible for freeing this object?
 | ||||||
| } api_response_t; | } api_response_t; | ||||||
| 
 | 
 | ||||||
| api_response_t *api_response_create( | __attribute__((deprecated)) api_response_t *api_response_create( | ||||||
|     int code, |     int code, | ||||||
|     char *type, |     char *type, | ||||||
|     char *message |     char *message | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| category_t *category_create( | static category_t *category_create_internal( | ||||||
|     long id, |     long id, | ||||||
|     char *name |     char *name | ||||||
|     ) { |     ) { | ||||||
| @ -16,14 +16,28 @@ category_t *category_create( | |||||||
|     category_local_var->id = id; |     category_local_var->id = id; | ||||||
|     category_local_var->name = name; |     category_local_var->name = name; | ||||||
| 
 | 
 | ||||||
|  |     category_local_var->_library_owned = 1; | ||||||
|     return category_local_var; |     return category_local_var; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | __attribute__((deprecated)) category_t *category_create( | ||||||
|  |     long id, | ||||||
|  |     char *name | ||||||
|  |     ) { | ||||||
|  |     return category_create_internal ( | ||||||
|  |         id, | ||||||
|  |         name | ||||||
|  |         ); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| void category_free(category_t *category) { | void category_free(category_t *category) { | ||||||
|     if(NULL == category){ |     if(NULL == category){ | ||||||
|         return ; |         return ; | ||||||
|     } |     } | ||||||
|  |     if(category->_library_owned != 1){ | ||||||
|  |         fprintf(stderr, "WARNING: %s() does NOT free objects allocated by the user\n", "category_free"); | ||||||
|  |         return ; | ||||||
|  |     } | ||||||
|     listEntry_t *listEntry; |     listEntry_t *listEntry; | ||||||
|     if (category->name) { |     if (category->name) { | ||||||
|         free(category->name); |         free(category->name); | ||||||
| @ -87,7 +101,7 @@ category_t *category_parseFromJSON(cJSON *categoryJSON){ | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     category_local_var = category_create ( |     category_local_var = category_create_internal ( | ||||||
|         id ? id->valuedouble : 0, |         id ? id->valuedouble : 0, | ||||||
|         name && !cJSON_IsNull(name) ? strdup(name->valuestring) : NULL |         name && !cJSON_IsNull(name) ? strdup(name->valuestring) : NULL | ||||||
|         ); |         ); | ||||||
|  | |||||||
| @ -22,9 +22,10 @@ typedef struct category_t { | |||||||
|     long id; //numeric
 |     long id; //numeric
 | ||||||
|     char *name; // string
 |     char *name; // string
 | ||||||
| 
 | 
 | ||||||
|  |     int _library_owned; // Is the library responsible for freeing this object?
 | ||||||
| } category_t; | } category_t; | ||||||
| 
 | 
 | ||||||
| category_t *category_create( | __attribute__((deprecated)) category_t *category_create( | ||||||
|     long id, |     long id, | ||||||
|     char *name |     char *name | ||||||
| ); | ); | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| MappedModel_t *MappedModel_create( | static MappedModel_t *MappedModel_create_internal( | ||||||
|     int another_property, |     int another_property, | ||||||
|     char *uuid_property |     char *uuid_property | ||||||
|     ) { |     ) { | ||||||
| @ -16,14 +16,28 @@ MappedModel_t *MappedModel_create( | |||||||
|     MappedModel_local_var->another_property = another_property; |     MappedModel_local_var->another_property = another_property; | ||||||
|     MappedModel_local_var->uuid_property = uuid_property; |     MappedModel_local_var->uuid_property = uuid_property; | ||||||
| 
 | 
 | ||||||
|  |     MappedModel_local_var->_library_owned = 1; | ||||||
|     return MappedModel_local_var; |     return MappedModel_local_var; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | __attribute__((deprecated)) MappedModel_t *MappedModel_create( | ||||||
|  |     int another_property, | ||||||
|  |     char *uuid_property | ||||||
|  |     ) { | ||||||
|  |     return MappedModel_create_internal ( | ||||||
|  |         another_property, | ||||||
|  |         uuid_property | ||||||
|  |         ); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| void MappedModel_free(MappedModel_t *MappedModel) { | void MappedModel_free(MappedModel_t *MappedModel) { | ||||||
|     if(NULL == MappedModel){ |     if(NULL == MappedModel){ | ||||||
|         return ; |         return ; | ||||||
|     } |     } | ||||||
|  |     if(MappedModel->_library_owned != 1){ | ||||||
|  |         fprintf(stderr, "WARNING: %s() does NOT free objects allocated by the user\n", "MappedModel_free"); | ||||||
|  |         return ; | ||||||
|  |     } | ||||||
|     listEntry_t *listEntry; |     listEntry_t *listEntry; | ||||||
|     if (MappedModel->uuid_property) { |     if (MappedModel->uuid_property) { | ||||||
|         free(MappedModel->uuid_property); |         free(MappedModel->uuid_property); | ||||||
| @ -87,7 +101,7 @@ MappedModel_t *MappedModel_parseFromJSON(cJSON *MappedModelJSON){ | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     MappedModel_local_var = MappedModel_create ( |     MappedModel_local_var = MappedModel_create_internal ( | ||||||
|         another_property ? another_property->valuedouble : 0, |         another_property ? another_property->valuedouble : 0, | ||||||
|         uuid_property && !cJSON_IsNull(uuid_property) ? strdup(uuid_property->valuestring) : NULL |         uuid_property && !cJSON_IsNull(uuid_property) ? strdup(uuid_property->valuestring) : NULL | ||||||
|         ); |         ); | ||||||
|  | |||||||
| @ -22,9 +22,10 @@ typedef struct MappedModel_t { | |||||||
|     int another_property; //numeric
 |     int another_property; //numeric
 | ||||||
|     char *uuid_property; // string
 |     char *uuid_property; // string
 | ||||||
| 
 | 
 | ||||||
|  |     int _library_owned; // Is the library responsible for freeing this object?
 | ||||||
| } MappedModel_t; | } MappedModel_t; | ||||||
| 
 | 
 | ||||||
| MappedModel_t *MappedModel_create( | __attribute__((deprecated)) MappedModel_t *MappedModel_create( | ||||||
|     int another_property, |     int another_property, | ||||||
|     char *uuid_property |     char *uuid_property | ||||||
| ); | ); | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| model_with_set_propertes_t *model_with_set_propertes_create( | static model_with_set_propertes_t *model_with_set_propertes_create_internal( | ||||||
|     list_t *tag_set, |     list_t *tag_set, | ||||||
|     list_t *string_set |     list_t *string_set | ||||||
|     ) { |     ) { | ||||||
| @ -16,14 +16,28 @@ model_with_set_propertes_t *model_with_set_propertes_create( | |||||||
|     model_with_set_propertes_local_var->tag_set = tag_set; |     model_with_set_propertes_local_var->tag_set = tag_set; | ||||||
|     model_with_set_propertes_local_var->string_set = string_set; |     model_with_set_propertes_local_var->string_set = string_set; | ||||||
| 
 | 
 | ||||||
|  |     model_with_set_propertes_local_var->_library_owned = 1; | ||||||
|     return model_with_set_propertes_local_var; |     return model_with_set_propertes_local_var; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | __attribute__((deprecated)) model_with_set_propertes_t *model_with_set_propertes_create( | ||||||
|  |     list_t *tag_set, | ||||||
|  |     list_t *string_set | ||||||
|  |     ) { | ||||||
|  |     return model_with_set_propertes_create_internal ( | ||||||
|  |         tag_set, | ||||||
|  |         string_set | ||||||
|  |         ); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| void model_with_set_propertes_free(model_with_set_propertes_t *model_with_set_propertes) { | void model_with_set_propertes_free(model_with_set_propertes_t *model_with_set_propertes) { | ||||||
|     if(NULL == model_with_set_propertes){ |     if(NULL == model_with_set_propertes){ | ||||||
|         return ; |         return ; | ||||||
|     } |     } | ||||||
|  |     if(model_with_set_propertes->_library_owned != 1){ | ||||||
|  |         fprintf(stderr, "WARNING: %s() does NOT free objects allocated by the user\n", "model_with_set_propertes_free"); | ||||||
|  |         return ; | ||||||
|  |     } | ||||||
|     listEntry_t *listEntry; |     listEntry_t *listEntry; | ||||||
|     if (model_with_set_propertes->tag_set) { |     if (model_with_set_propertes->tag_set) { | ||||||
|         list_ForEach(listEntry, model_with_set_propertes->tag_set) { |         list_ForEach(listEntry, model_with_set_propertes->tag_set) { | ||||||
| @ -146,7 +160,7 @@ model_with_set_propertes_t *model_with_set_propertes_parseFromJSON(cJSON *model_ | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     model_with_set_propertes_local_var = model_with_set_propertes_create ( |     model_with_set_propertes_local_var = model_with_set_propertes_create_internal ( | ||||||
|         tag_set ? tag_setList : NULL, |         tag_set ? tag_setList : NULL, | ||||||
|         string_set ? string_setList : NULL |         string_set ? string_setList : NULL | ||||||
|         ); |         ); | ||||||
|  | |||||||
| @ -23,9 +23,10 @@ typedef struct model_with_set_propertes_t { | |||||||
|     list_t *tag_set; //nonprimitive container
 |     list_t *tag_set; //nonprimitive container
 | ||||||
|     list_t *string_set; //primitive container
 |     list_t *string_set; //primitive container
 | ||||||
| 
 | 
 | ||||||
|  |     int _library_owned; // Is the library responsible for freeing this object?
 | ||||||
| } model_with_set_propertes_t; | } model_with_set_propertes_t; | ||||||
| 
 | 
 | ||||||
| model_with_set_propertes_t *model_with_set_propertes_create( | __attribute__((deprecated)) model_with_set_propertes_t *model_with_set_propertes_create( | ||||||
|     list_t *tag_set, |     list_t *tag_set, | ||||||
|     list_t *string_set |     list_t *string_set | ||||||
| ); | ); | ||||||
|  | |||||||
| @ -22,7 +22,7 @@ openapi_petstore_order_STATUS_e order_status_FromString(char* status){ | |||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| order_t *order_create( | static order_t *order_create_internal( | ||||||
|     long id, |     long id, | ||||||
|     long pet_id, |     long pet_id, | ||||||
|     int quantity, |     int quantity, | ||||||
| @ -41,14 +41,36 @@ order_t *order_create( | |||||||
|     order_local_var->status = status; |     order_local_var->status = status; | ||||||
|     order_local_var->complete = complete; |     order_local_var->complete = complete; | ||||||
| 
 | 
 | ||||||
|  |     order_local_var->_library_owned = 1; | ||||||
|     return order_local_var; |     return order_local_var; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | __attribute__((deprecated)) order_t *order_create( | ||||||
|  |     long id, | ||||||
|  |     long pet_id, | ||||||
|  |     int quantity, | ||||||
|  |     char *ship_date, | ||||||
|  |     openapi_petstore_order_STATUS_e status, | ||||||
|  |     int complete | ||||||
|  |     ) { | ||||||
|  |     return order_create_internal ( | ||||||
|  |         id, | ||||||
|  |         pet_id, | ||||||
|  |         quantity, | ||||||
|  |         ship_date, | ||||||
|  |         status, | ||||||
|  |         complete | ||||||
|  |         ); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| void order_free(order_t *order) { | void order_free(order_t *order) { | ||||||
|     if(NULL == order){ |     if(NULL == order){ | ||||||
|         return ; |         return ; | ||||||
|     } |     } | ||||||
|  |     if(order->_library_owned != 1){ | ||||||
|  |         fprintf(stderr, "WARNING: %s() does NOT free objects allocated by the user\n", "order_free"); | ||||||
|  |         return ; | ||||||
|  |     } | ||||||
|     listEntry_t *listEntry; |     listEntry_t *listEntry; | ||||||
|     if (order->ship_date) { |     if (order->ship_date) { | ||||||
|         free(order->ship_date); |         free(order->ship_date); | ||||||
| @ -195,7 +217,7 @@ order_t *order_parseFromJSON(cJSON *orderJSON){ | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     order_local_var = order_create ( |     order_local_var = order_create_internal ( | ||||||
|         id ? id->valuedouble : 0, |         id ? id->valuedouble : 0, | ||||||
|         pet_id ? pet_id->valuedouble : 0, |         pet_id ? pet_id->valuedouble : 0, | ||||||
|         quantity ? quantity->valuedouble : 0, |         quantity ? quantity->valuedouble : 0, | ||||||
|  | |||||||
| @ -34,9 +34,10 @@ typedef struct order_t { | |||||||
|     openapi_petstore_order_STATUS_e status; //enum
 |     openapi_petstore_order_STATUS_e status; //enum
 | ||||||
|     int complete; //boolean
 |     int complete; //boolean
 | ||||||
| 
 | 
 | ||||||
|  |     int _library_owned; // Is the library responsible for freeing this object?
 | ||||||
| } order_t; | } order_t; | ||||||
| 
 | 
 | ||||||
| order_t *order_create( | __attribute__((deprecated)) order_t *order_create( | ||||||
|     long id, |     long id, | ||||||
|     long pet_id, |     long pet_id, | ||||||
|     int quantity, |     int quantity, | ||||||
|  | |||||||
| @ -22,7 +22,7 @@ openapi_petstore_pet_STATUS_e pet_status_FromString(char* status){ | |||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| pet_t *pet_create( | static pet_t *pet_create_internal( | ||||||
|     long id, |     long id, | ||||||
|     category_t *category, |     category_t *category, | ||||||
|     char *name, |     char *name, | ||||||
| @ -41,14 +41,36 @@ pet_t *pet_create( | |||||||
|     pet_local_var->tags = tags; |     pet_local_var->tags = tags; | ||||||
|     pet_local_var->status = status; |     pet_local_var->status = status; | ||||||
| 
 | 
 | ||||||
|  |     pet_local_var->_library_owned = 1; | ||||||
|     return pet_local_var; |     return pet_local_var; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | __attribute__((deprecated)) pet_t *pet_create( | ||||||
|  |     long id, | ||||||
|  |     category_t *category, | ||||||
|  |     char *name, | ||||||
|  |     list_t *photo_urls, | ||||||
|  |     list_t *tags, | ||||||
|  |     openapi_petstore_pet_STATUS_e status | ||||||
|  |     ) { | ||||||
|  |     return pet_create_internal ( | ||||||
|  |         id, | ||||||
|  |         category, | ||||||
|  |         name, | ||||||
|  |         photo_urls, | ||||||
|  |         tags, | ||||||
|  |         status | ||||||
|  |         ); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| void pet_free(pet_t *pet) { | void pet_free(pet_t *pet) { | ||||||
|     if(NULL == pet){ |     if(NULL == pet){ | ||||||
|         return ; |         return ; | ||||||
|     } |     } | ||||||
|  |     if(pet->_library_owned != 1){ | ||||||
|  |         fprintf(stderr, "WARNING: %s() does NOT free objects allocated by the user\n", "pet_free"); | ||||||
|  |         return ; | ||||||
|  |     } | ||||||
|     listEntry_t *listEntry; |     listEntry_t *listEntry; | ||||||
|     if (pet->category) { |     if (pet->category) { | ||||||
|         category_free(pet->category); |         category_free(pet->category); | ||||||
| @ -275,7 +297,7 @@ pet_t *pet_parseFromJSON(cJSON *petJSON){ | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     pet_local_var = pet_create ( |     pet_local_var = pet_create_internal ( | ||||||
|         id ? id->valuedouble : 0, |         id ? id->valuedouble : 0, | ||||||
|         category ? category_local_nonprim : NULL, |         category ? category_local_nonprim : NULL, | ||||||
|         strdup(name->valuestring), |         strdup(name->valuestring), | ||||||
|  | |||||||
| @ -36,9 +36,10 @@ typedef struct pet_t { | |||||||
|     list_t *tags; //nonprimitive container
 |     list_t *tags; //nonprimitive container
 | ||||||
|     openapi_petstore_pet_STATUS_e status; //enum
 |     openapi_petstore_pet_STATUS_e status; //enum
 | ||||||
| 
 | 
 | ||||||
|  |     int _library_owned; // Is the library responsible for freeing this object?
 | ||||||
| } pet_t; | } pet_t; | ||||||
| 
 | 
 | ||||||
| pet_t *pet_create( | __attribute__((deprecated)) pet_t *pet_create( | ||||||
|     long id, |     long id, | ||||||
|     category_t *category, |     category_t *category, | ||||||
|     char *name, |     char *name, | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| tag_t *tag_create( | static tag_t *tag_create_internal( | ||||||
|     long id, |     long id, | ||||||
|     char *name |     char *name | ||||||
|     ) { |     ) { | ||||||
| @ -16,14 +16,28 @@ tag_t *tag_create( | |||||||
|     tag_local_var->id = id; |     tag_local_var->id = id; | ||||||
|     tag_local_var->name = name; |     tag_local_var->name = name; | ||||||
| 
 | 
 | ||||||
|  |     tag_local_var->_library_owned = 1; | ||||||
|     return tag_local_var; |     return tag_local_var; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | __attribute__((deprecated)) tag_t *tag_create( | ||||||
|  |     long id, | ||||||
|  |     char *name | ||||||
|  |     ) { | ||||||
|  |     return tag_create_internal ( | ||||||
|  |         id, | ||||||
|  |         name | ||||||
|  |         ); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| void tag_free(tag_t *tag) { | void tag_free(tag_t *tag) { | ||||||
|     if(NULL == tag){ |     if(NULL == tag){ | ||||||
|         return ; |         return ; | ||||||
|     } |     } | ||||||
|  |     if(tag->_library_owned != 1){ | ||||||
|  |         fprintf(stderr, "WARNING: %s() does NOT free objects allocated by the user\n", "tag_free"); | ||||||
|  |         return ; | ||||||
|  |     } | ||||||
|     listEntry_t *listEntry; |     listEntry_t *listEntry; | ||||||
|     if (tag->name) { |     if (tag->name) { | ||||||
|         free(tag->name); |         free(tag->name); | ||||||
| @ -87,7 +101,7 @@ tag_t *tag_parseFromJSON(cJSON *tagJSON){ | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     tag_local_var = tag_create ( |     tag_local_var = tag_create_internal ( | ||||||
|         id ? id->valuedouble : 0, |         id ? id->valuedouble : 0, | ||||||
|         name && !cJSON_IsNull(name) ? strdup(name->valuestring) : NULL |         name && !cJSON_IsNull(name) ? strdup(name->valuestring) : NULL | ||||||
|         ); |         ); | ||||||
|  | |||||||
| @ -22,9 +22,10 @@ typedef struct tag_t { | |||||||
|     long id; //numeric
 |     long id; //numeric
 | ||||||
|     char *name; // string
 |     char *name; // string
 | ||||||
| 
 | 
 | ||||||
|  |     int _library_owned; // Is the library responsible for freeing this object?
 | ||||||
| } tag_t; | } tag_t; | ||||||
| 
 | 
 | ||||||
| tag_t *tag_create( | __attribute__((deprecated)) tag_t *tag_create( | ||||||
|     long id, |     long id, | ||||||
|     char *name |     char *name | ||||||
| ); | ); | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| user_t *user_create( | static user_t *user_create_internal( | ||||||
|     long id, |     long id, | ||||||
|     char *username, |     char *username, | ||||||
|     char *first_name, |     char *first_name, | ||||||
| @ -32,14 +32,44 @@ user_t *user_create( | |||||||
|     user_local_var->extra = extra; |     user_local_var->extra = extra; | ||||||
|     user_local_var->preference = preference; |     user_local_var->preference = preference; | ||||||
| 
 | 
 | ||||||
|  |     user_local_var->_library_owned = 1; | ||||||
|     return user_local_var; |     return user_local_var; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | __attribute__((deprecated)) user_t *user_create( | ||||||
|  |     long id, | ||||||
|  |     char *username, | ||||||
|  |     char *first_name, | ||||||
|  |     char *last_name, | ||||||
|  |     char *email, | ||||||
|  |     char *password, | ||||||
|  |     char *phone, | ||||||
|  |     int user_status, | ||||||
|  |     list_t* extra, | ||||||
|  |     openapi_petstore_preference__e preference | ||||||
|  |     ) { | ||||||
|  |     return user_create_internal ( | ||||||
|  |         id, | ||||||
|  |         username, | ||||||
|  |         first_name, | ||||||
|  |         last_name, | ||||||
|  |         email, | ||||||
|  |         password, | ||||||
|  |         phone, | ||||||
|  |         user_status, | ||||||
|  |         extra, | ||||||
|  |         preference | ||||||
|  |         ); | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| void user_free(user_t *user) { | void user_free(user_t *user) { | ||||||
|     if(NULL == user){ |     if(NULL == user){ | ||||||
|         return ; |         return ; | ||||||
|     } |     } | ||||||
|  |     if(user->_library_owned != 1){ | ||||||
|  |         fprintf(stderr, "WARNING: %s() does NOT free objects allocated by the user\n", "user_free"); | ||||||
|  |         return ; | ||||||
|  |     } | ||||||
|     listEntry_t *listEntry; |     listEntry_t *listEntry; | ||||||
|     if (user->username) { |     if (user->username) { | ||||||
|         free(user->username); |         free(user->username); | ||||||
| @ -320,7 +350,7 @@ user_t *user_parseFromJSON(cJSON *userJSON){ | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     user_local_var = user_create ( |     user_local_var = user_create_internal ( | ||||||
|         id ? id->valuedouble : 0, |         id ? id->valuedouble : 0, | ||||||
|         username && !cJSON_IsNull(username) ? strdup(username->valuestring) : NULL, |         username && !cJSON_IsNull(username) ? strdup(username->valuestring) : NULL, | ||||||
|         first_name && !cJSON_IsNull(first_name) ? strdup(first_name->valuestring) : NULL, |         first_name && !cJSON_IsNull(first_name) ? strdup(first_name->valuestring) : NULL, | ||||||
|  | |||||||
| @ -32,9 +32,10 @@ typedef struct user_t { | |||||||
|     list_t* extra; //map
 |     list_t* extra; //map
 | ||||||
|     openapi_petstore_preference__e preference; //referenced enum
 |     openapi_petstore_preference__e preference; //referenced enum
 | ||||||
| 
 | 
 | ||||||
|  |     int _library_owned; // Is the library responsible for freeing this object?
 | ||||||
| } user_t; | } user_t; | ||||||
| 
 | 
 | ||||||
| user_t *user_create( | __attribute__((deprecated)) user_t *user_create( | ||||||
|     long id, |     long id, | ||||||
|     char *username, |     char *username, | ||||||
|     char *first_name, |     char *first_name, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user