浏览代码

WebGLGeometries: Fixed onGeometryDispose. Fixes #6694.

Mr.doob 10 年之前
父节点
当前提交
acb60ac2d9
共有 1 个文件被更改,包括 7 次插入6 次删除
  1. 7 6
      src/renderers/webgl/WebGLGeometries.js

+ 7 - 6
src/renderers/webgl/WebGLGeometries.js

@@ -37,14 +37,11 @@ THREE.WebGLGeometries = function ( gl, info ) {
 	function onGeometryDispose( event ) {
 	function onGeometryDispose( event ) {
 
 
 		var geometry = event.target;
 		var geometry = event.target;
+		var buffergeometry = geometries[ geometry.id ];
 
 
-		geometry.removeEventListener( 'dispose', onGeometryDispose );
-
-		geometry = geometries[ geometry.id ];
-
-		for ( var name in geometry.attributes ) {
+		for ( var name in buffergeometry.attributes ) {
 
 
-			var attribute = geometry.attributes[ name ];
+			var attribute = buffergeometry.attributes[ name ];
 
 
 			if ( attribute.buffer !== undefined ) {
 			if ( attribute.buffer !== undefined ) {
 
 
@@ -56,6 +53,10 @@ THREE.WebGLGeometries = function ( gl, info ) {
 
 
 		}
 		}
 
 
+		geometry.removeEventListener( 'dispose', onGeometryDispose );
+
+		delete geometries[ geometry.id ];
+
 		info.memory.geometries --;
 		info.memory.geometries --;
 
 
 	}
 	}