瀏覽代碼

remove generic base and extern fields after saving class state (prevent removing macros functions from cached classes)

Nicolas Cannasse 12 年之前
父節點
當前提交
ba532a0990
共有 1 個文件被更改,包括 4 次插入4 次删除
  1. 4 4
      main.ml

+ 4 - 4
main.ml

@@ -1212,10 +1212,6 @@ try
 		com.main <- main;
 		com.types <- types;
 		com.modules <- modules;
-		List.iter (fun t ->
-			Codegen.remove_generic_base tctx t;
-			Codegen.remove_extern_fields tctx t
-		) com.types;
 		let filters = [
 			Codegen.Abstract.handle_abstract_casts tctx;
 			Codegen.promote_complex_rhs com;
@@ -1228,6 +1224,10 @@ try
 		Codegen.post_process_end();
 		List.iter (fun f -> f()) (List.rev com.filters);
 		List.iter (Codegen.save_class_state tctx) com.types;
+		List.iter (fun t ->
+			Codegen.remove_generic_base tctx t;
+			Codegen.remove_extern_fields tctx t
+		) com.types;
 		if Common.defined_value_safe com Define.DisplayMode = "usage" then
 			Codegen.detect_usage com;
 		let dce_mode = (try Common.defined_value com Define.Dce with _ -> "no") in