浏览代码

fixs issue mem leak with LoadModel / OBJ and issue with -1 material index (#969)

chriscamacho 6 年之前
父节点
当前提交
314c4061df
共有 1 个文件被更改,包括 8 次插入1 次删除
  1. 8 1
      src/models.c

+ 8 - 1
src/models.c

@@ -669,7 +669,9 @@ Model LoadModel(const char *fileName)
         model.materials = (Material *)RL_CALLOC(model.materialCount, sizeof(Material));
         model.materials[0] = LoadMaterialDefault();
 
-        model.meshMaterial = (int *)RL_CALLOC(model.meshCount, sizeof(int));
+        if (model.meshMaterial==NULL) {
+            model.meshMaterial = (int *)RL_CALLOC(model.meshCount, sizeof(int));
+        }
     }
 
     return model;
@@ -2860,6 +2862,11 @@ static Model LoadOBJ(const char *fileName)
 
             // Assign mesh material for current mesh
             model.meshMaterial[m] = attrib.material_ids[m];
+
+            // set unfound materials to default
+            if (model.meshMaterial[m] == -1) {
+                model.meshMaterial[m] = 0;
+            }
         }
 
         // Init model materials