Fixed crash when trying to load Object with no meshes

This commit is contained in:
korenkonder
2025-04-10 14:05:23 +03:00
parent f0789f7608
commit bb242e95e5
+10 -6
View File
@@ -448,7 +448,7 @@ bool obj_index_buffer::load(obj* obj) {
}
void* index = force_malloc(buffer_size);
if (!index) {
if (!index && buffer_size) {
buffer = 0;
unload();
return false;
@@ -465,7 +465,7 @@ bool obj_index_buffer::load(obj* obj) {
}
buffer = create_index_buffer(buffer_size, index);
if (!buffer) {
if (!buffer && buffer_size) {
free_def(index);
unload();
return false;
@@ -548,7 +548,7 @@ bool obj_vertex_buffer::load(obj* obj) {
int32_t count = double_buffer ? 2 : 1;
void* vertex = force_malloc(buffer_size);
if (!vertex) {
if (!vertex && buffer_size) {
for (int32_t i = 0; i < count; i++)
buffers[i] = 0;
unload();
@@ -567,7 +567,7 @@ bool obj_vertex_buffer::load(obj* obj) {
for (int32_t i = 0; i < count; i++) {
buffers[i] = create_vertex_buffer(buffer_size, vertex);
if (!buffers[i]) {
if (!buffers[i] && buffer_size) {
free_def(vertex);
unload();
return false;
@@ -589,8 +589,12 @@ bool obj_vertex_buffer::load(obj* obj) {
void obj_vertex_buffer::unload() {
if (mesh_data) {
#if SHARED_OBJECT_BUFFER
for (int32_t i = 0; i < mesh_data[0].count; i++)
free_vertex_buffer(buffers[i]);
if (mesh_num)
for (int32_t i = 0; i < mesh_data[0].count; i++)
free_vertex_buffer(buffers[i]);
else
for (int32_t i = 0; i < 3; i++)
free_vertex_buffer(buffers[i]);
#else
for (int32_t i = 0; i < mesh_num; i++)
mesh_data[i].unload();