diff --git a/src/openrct2/object/ObjectJsonHelpers.cpp b/src/openrct2/object/ObjectJsonHelpers.cpp index 4dc75528df..c7da2f99b1 100644 --- a/src/openrct2/object/ObjectJsonHelpers.cpp +++ b/src/openrct2/object/ObjectJsonHelpers.cpp @@ -55,7 +55,7 @@ namespace ObjectJsonHelpers { auto length = g1_calculate_data_size(&orig); g1 = orig; - g1.offset = (uint8_t*)std::malloc(length); + g1.offset = new uint8_t[length]; std::memcpy(g1.offset, orig.offset, length); g1.flags &= ~G1_FLAG_HAS_ZOOM_SPRITE; } @@ -67,9 +67,9 @@ namespace ObjectJsonHelpers { auto length = g1_calculate_data_size(orig); g1 = *orig; - g1.offset = (uint8_t*)std::malloc(length); + g1.offset = new uint8_t[length]; std::memcpy(g1.offset, orig->offset, length); - if (g1.flags & G1_FLAG_HAS_ZOOM_SPRITE) + if ((g1.flags & G1_FLAG_HAS_ZOOM_SPRITE) && g1.zoomed_offset != 0) { // Fetch image for next zoom level next_zoom = std::make_unique((uint32_t)(idx - g1.zoomed_offset), getter); @@ -84,7 +84,7 @@ namespace ObjectJsonHelpers ~RequiredImage() { - std::free(g1.offset); + delete[] g1.offset; } };