@@ -942,48 +942,11 @@ fn compileSource(source: []const u8) !CompilerStageData {
942942 const base_ptr = @intFromPtr (buffer .ptr );
943943
944944 logDebug ("loadCompiledModule: About to deserialize common\n " , .{});
945- const deserialized_common = serialized_ptr .common .deserialize (@as (i64 , @intCast (base_ptr )), module_source ).* ;
946- logDebug ("loadCompiledModule: common deserialized successfully\n " , .{});
947-
948- logDebug ("loadCompiledModule: About to deserialize types\n " , .{});
949- const deserialized_types = serialized_ptr .types .deserialize (@as (i64 , @intCast (base_ptr )), gpa ).* ;
950- logDebug ("loadCompiledModule: types deserialized successfully\n " , .{});
951-
952- logDebug ("loadCompiledModule: About to deserialize external_decls\n " , .{});
953- const deserialized_external_decls = serialized_ptr .external_decls .deserialize (@as (i64 , @intCast (base_ptr ))).* ;
954- logDebug ("loadCompiledModule: external_decls deserialized successfully\n " , .{});
955-
956- logDebug ("loadCompiledModule: About to deserialize imports\n " , .{});
957- const deserialized_imports = serialized_ptr .imports .deserialize (@as (i64 , @intCast (base_ptr )), gpa ).* ;
958- logDebug ("loadCompiledModule: imports deserialized successfully\n " , .{});
959-
960- logDebug ("loadCompiledModule: About to deserialize store\n " , .{});
961- const deserialized_store_ptr = serialized_ptr .store .deserialize (@as (i64 , @intCast (base_ptr )), gpa );
962- const deserialized_store = deserialized_store_ptr .* ;
963- logDebug ("loadCompiledModule: store deserialized successfully\n " , .{});
964-
965- // Intern the module name for fast comparisons
966- const module_name_idx = module_env_ptr .common .idents .insert (gpa , base .Ident .for_text (module_name_param )) catch unreachable ;
967-
968- logDebug ("loadCompiledModule: All deserialized, constructing ModuleEnv\n " , .{});
969- module_env_ptr .* = ModuleEnv {
970- .gpa = gpa ,
971- .common = deserialized_common ,
972- .types = deserialized_types ,
973- .module_kind = serialized_ptr .module_kind ,
974- .all_defs = serialized_ptr .all_defs ,
975- .all_statements = serialized_ptr .all_statements ,
976- .exports = serialized_ptr .exports ,
977- .builtin_statements = serialized_ptr .builtin_statements ,
978- .external_decls = deserialized_external_decls ,
979- .imports = deserialized_imports ,
980- .module_name = module_name_param ,
981- .module_name_idx = module_name_idx ,
982- .diagnostics = serialized_ptr .diagnostics ,
983- .store = deserialized_store ,
984- .evaluation_order = null ,
985- };
986- logDebug ("loadCompiledModule: ModuleEnv constructed successfully\n " , .{});
945+ // Use the built-in deserialize method instead of manually deserializing each field
946+ // This ensures proper offset calculations when the struct layout changes
947+ logDebug ("loadCompiledModule: About to deserialize ModuleEnv\n " , .{});
948+ module_env_ptr .* = serialized_ptr .deserialize (@as (i64 , @intCast (base_ptr )), gpa , module_source , module_name_param ).* ;
949+ logDebug ("loadCompiledModule: ModuleEnv deserialized successfully\n " , .{});
987950
988951 logDebug ("loadCompiledModule: Returning LoadedModule\n " , .{});
989952 return .{ .env = module_env_ptr , .buffer = buffer , .gpa = gpa };
0 commit comments