diff --git a/src/ocispec/sources.py b/src/ocispec/sources.py index b2241f06..7a34d41d 100755 --- a/src/ocispec/sources.py +++ b/src/ocispec/sources.py @@ -374,7 +374,7 @@ def get_obj_arr_obj_array(obj, c_file, prefix): c_file.append(' for (i = 0; i < len; i++)\n') c_file.append(' {\n') if obj.doublearray: - c_file.append(' json_t *subsubroot = json_object();\n') + c_file.append(' json_t *subsubroot = json_object();//lalala2\n') c_file.append(" size_t j;\n") c_file.append(f' for (j = 0; j < ptr->{obj.fixname}_item_lens[i]; j++)\n') c_file.append(' {\n') @@ -384,7 +384,11 @@ def get_obj_arr_obj_array(obj, c_file, prefix): c_file.append(' }\n') c_file.append(' stat = json_array_append(subroot, subsubroot);\n') else: - c_file.append(f' stat = gen_{typename} (subroot, ptr->{obj.fixname}[i], err);\n') + c_file.append(f' json_t *obj = json_object();\n') + c_file.append(f' stat = gen_{typename} (obj, ptr->{obj.fixname}[i], err);\n') + c_file.append(" if (stat != JSON_GEN_SUCCESS)\n") + c_file.append(" GEN_SET_ERROR_AND_RETURN (stat, err);\n") + c_file.append(" stat = json_array_append(subroot, obj);\n") c_file.append(" if (stat != JSON_GEN_SUCCESS)\n") c_file.append(" GEN_SET_ERROR_AND_RETURN (stat, err);\n") c_file.append(' }\n')