|
@@ -33,12 +33,14 @@ let update_module_type_deps deps md =
|
|
) md.m_types;
|
|
) md.m_types;
|
|
!deps
|
|
!deps
|
|
|
|
|
|
-let rec scan_module_deps m h =
|
|
|
|
|
|
+let rec scan_module_deps cs m h =
|
|
if Hashtbl.mem h m.m_id then
|
|
if Hashtbl.mem h m.m_id then
|
|
()
|
|
()
|
|
else begin
|
|
else begin
|
|
Hashtbl.add h m.m_id m;
|
|
Hashtbl.add h m.m_id m;
|
|
- PMap.iter (fun _ m -> scan_module_deps m h) m.m_extra.m_deps
|
|
|
|
|
|
+ PMap.iter (fun _ (sign,mpath) ->
|
|
|
|
+ let m = (cs#get_context sign)#find_module mpath in
|
|
|
|
+ scan_module_deps cs m h) m.m_extra.m_deps
|
|
end
|
|
end
|
|
|
|
|
|
let module_sign key md =
|
|
let module_sign key md =
|
|
@@ -61,7 +63,7 @@ let get_out out =
|
|
|
|
|
|
let get_module_memory cs all_modules m =
|
|
let get_module_memory cs all_modules m =
|
|
let mdeps = Hashtbl.create 0 in
|
|
let mdeps = Hashtbl.create 0 in
|
|
- scan_module_deps m mdeps;
|
|
|
|
|
|
+ scan_module_deps cs m mdeps;
|
|
let deps = ref [Obj.repr null_module] in
|
|
let deps = ref [Obj.repr null_module] in
|
|
let out = ref all_modules in
|
|
let out = ref all_modules in
|
|
let deps = Hashtbl.fold (fun _ md deps ->
|
|
let deps = Hashtbl.fold (fun _ md deps ->
|
|
@@ -272,8 +274,9 @@ let display_memory com =
|
|
());
|
|
());
|
|
if verbose then begin
|
|
if verbose then begin
|
|
print (Printf.sprintf " %d total deps" (List.length deps));
|
|
print (Printf.sprintf " %d total deps" (List.length deps));
|
|
- PMap.iter (fun _ md ->
|
|
|
|
- print (Printf.sprintf " dep %s%s" (s_type_path md.m_path) (module_sign key md));
|
|
|
|
|
|
+ PMap.iter (fun _ (sign,mpath) ->
|
|
|
|
+ let md = (com.cs#get_context sign)#find_module mpath in
|
|
|
|
+ print (Printf.sprintf " dep %s%s" (s_type_path mpath) (module_sign key md));
|
|
) m.m_extra.m_deps;
|
|
) m.m_extra.m_deps;
|
|
end;
|
|
end;
|
|
flush stdout
|
|
flush stdout
|