Explorar el Código

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

Nicolas Cannasse hace 12 años
padre
commit
ba532a0990
Se han modificado 1 ficheros con 4 adiciones y 4 borrados
  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