@@ -214,59 +214,92 @@ void {{classname}}_free({{classname}}_t *{{classname}}) {
214214 { {^isPrimitiveType} }
215215 { {#isModel} }
216216 { {^isEnum} }
217- { {{complexType} }}_free({ {{classname} }}->{ {{name} }});
217+ if ({ {{classname} }}->{ {{name} }}) {
218+ {{{complexType} }}_free({ {{classname} }}->{ {{name} }});
219+ { {classname} }->{ {name} } = NULL;
220+ }
218221 { {/isEnum} }
219222 { {/isModel} }
220223 { {#isUuid} }
221- free({ {{classname} }}->{ {{name} }});
224+ if ({ {{classname} }}->{ {{name} }}) {
225+ free({{{classname} }}->{ {{name} }});
226+ { {classname} }->{ {name} } = NULL;
227+ }
222228 { {/isUuid} }
223229 { {#isEmail} }
224- free({ {{classname} }}->{ {{name} }});
230+ if ({ {{classname} }}->{ {{name} }}) {
231+ free({{{classname} }}->{ {{name} }});
232+ { {classname} }->{ {name} } = NULL;
233+ }
225234 { {/isEmail} }
226235 { {#isFreeFormObject} }
227- object_free({ {{classname} }}->{ {{name} }});
236+ if ({ {{classname} }}->{ {{name} }}) {
237+ object_free({{{classname} }}->{ {{name} }});
238+ { {classname} }->{ {name} } = NULL;
239+ }
228240 { {/isFreeFormObject} }
229241 { {/isPrimitiveType} }
230242 { {#isPrimitiveType} }
231243 { {^isEnum} }
232244 { {#isString} }
233- free({ {{classname} }}->{ {{name} }});
245+ if ({ {{classname} }}->{ {{name} }}) {
246+ free({{{classname} }}->{ {{name} }});
247+ { {classname} }->{ {name} } = NULL;
248+ }
234249 { {/isString} }
235250 { {/isEnum} }
236251 { {#isBinary} }
237- free({ {{classname} }}->{ {{name} }}->data);
252+ if ({ {{classname} }}->{ {{name} }}) {
253+ free({{{classname} }}->{ {{name} }}->data);
254+ { {classname} }->{ {name} } = NULL;
255+ }
238256 { {/isBinary} }
239257 { {#isDate} }
240- free({ {{classname} }}->{ {{name} }});
258+ if ({ {{classname} }}->{ {{name} }}) {
259+ free({{{classname} }}->{ {{name} }});
260+ { {classname} }->{ {name} } = NULL;
261+ }
241262 { {/isDate} }
242263 { {#isDateTime} }
243- free({ {{classname} }}->{ {{name} }});
264+ if ({ {{classname} }}->{ {{name} }}) {
265+ free({{{classname} }}->{ {{name} }});
266+ { {classname} }->{ {name} } = NULL;
267+ }
244268 { {/isDateTime} }
245269 { {/isPrimitiveType} }
246270 { {/isContainer} }
247271 { {#isContainer} }
248272 { {#isArray} }
249273 { {#isPrimitiveType} }
250- list_ForEach(listEntry, { {classname} }->{ {name} }) {
251- free(listEntry-> data );
274+ if ({ {{classname} }}->{ {{name} }}) {
275+ list_ForEach(listEntry, {{classname} }->{ {name} }) {
276+ free(listEntry-> data );
277+ }
278+ list_free({ {classname} }->{ {name} });
279+ { {classname} }->{ {name} } = NULL;
252280 }
253- list_free({ {classname} }->{ {name} });
254281 { {/isPrimitiveType} }
255282 { {^isPrimitiveType} }
256- list_ForEach(listEntry, { {classname} }->{ {name} }) {
257- {{complexType} }_free(listEntry->data);
283+ if ({ {{classname} }}->{ {{name} }}) {
284+ list_ForEach(listEntry, {{classname} }->{ {name} }) {
285+ {{complexType} }_free(listEntry->data);
286+ }
287+ list_free({ {classname} }->{ {name} });
288+ { {classname} }->{ {name} } = NULL;
258289 }
259- list_free({ {classname} }->{ {name} });
260290 { {/isPrimitiveType} }
261291 { {/isArray} }
262292 { {#isMap} }
263- list_ForEach(listEntry, { {classname} }->{ {name} }) {
264- keyValuePair_t *localKeyValue = (keyValuePair_t*) listEntry-> data ;
265- free (localKeyValue-> key );
266- free (localKeyValue-> value );
267- keyValuePair_free(localKeyValue);
293+ if ({ {{classname} }}->{ {{name} }}) {
294+ list_ForEach(listEntry, {{classname} }->{ {name} }) {
295+ keyValuePair_t *localKeyValue = (keyValuePair_t*) listEntry-> data ;
296+ free (localKeyValue-> key );
297+ free (localKeyValue-> value );
298+ keyValuePair_free(localKeyValue);
299+ }
300+ list_free({ {classname} }->{ {name} });
301+ { {classname} }->{ {name} } = NULL;
268302 }
269- list_free({ {classname} }->{ {name} });
270303 { {/isMap} }
271304 { {/isContainer} }
272305 { {/vars} }
0 commit comments