diff --git a/erpcgen/src/templates/c_coders.template b/erpcgen/src/templates/c_coders.template index 4d60c932..4bf37fa7 100644 --- a/erpcgen/src/templates/c_coders.template +++ b/erpcgen/src/templates/c_coders.template @@ -60,22 +60,31 @@ if (({$info.sizeTemp} <= {$info.maxSize}) && ({$info.dataTemp} != NULL)) {% else %} {% set indent = "" >%} {% endif %} +{$indent}if ({$info.sizeTemp} > 0) +{$indent}{ {% if source == "server" || info.useMallocOnClientSide == true %} {$indent}{$info.name} = (uint8_t *) erpc_malloc({$info.maxSize} * sizeof(uint8_t)); {% if generateAllocErrorChecks == true %} -{$indent}if (({$info.name} == NULL) && ({$info.sizeTemp} > 0)) -{$indent}{ -{$indent} codec->updateStatus(kErpcStatus_MemoryError); +{$indent} if ({$info.name} == NULL) +{$indent} { +{$indent} codec->updateStatus(kErpcStatus_MemoryError); +{$indent} } +{$indent} else +{$indent} { +{$indent} memcpy({$info.name}, {$info.dataTemp}, {$info.sizeTemp}); +{$indent} } +{% else -- generateAllocErrorChecks == true %} +{$indent} memcpy({$info.name}, {$info.dataTemp}, {$info.sizeTemp}); +{% endif -- generateAllocErrorChecks == true %} +{% else %} +{$indent} memcpy({$info.name}, {$info.dataTemp}, {$info.sizeTemp}); +{% endif %} {$indent}} +{% if source == "server" || info.useMallocOnClientSide == true %} {$indent}else {$indent}{ -{$indent} memcpy({$info.name}, {$info.dataTemp}, {$info.sizeTemp}); +{$indent} {$info.name} = NULL; {$indent}} -{% else -- generateAllocErrorChecks == true %} -{$indent}memcpy({$info.name}, {$info.dataTemp}, {$info.sizeTemp}); -{% endif -- generateAllocErrorChecks == true %} -{% else %} -{$indent}memcpy({$info.name}, {$info.dataTemp}, {$info.sizeTemp}); {% endif %} {% if info.maxSize != info.sizeTemp %} }