mirror of
https://github.com/korenkonder/ReDIVA.git
synced 2026-10-01 11:18:23 +03:00
Fixed crash when trying to load Object with no meshes
This commit is contained in:
+10
-6
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user