Просмотр исходного кода

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

Nicolas Cannasse 12 лет назад
Родитель
Сommit
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