@@ -731,6 +731,13 @@ void MemDetailDiffReporter::diff_virtual_memory_sites() const {
731
731
} else if (compVal > 0 ) {
732
732
old_virtual_memory_site (early_site);
733
733
early_site = early_itr.next ();
734
+ } else if (early_site->flag () != current_site->flag ()) {
735
+ // This site was originally allocated with one flag, then released,
736
+ // then re-allocated at the same site (as far as we can tell) with a different flag.
737
+ old_virtual_memory_site (early_site);
738
+ early_site = early_itr.next ();
739
+ new_virtual_memory_site (current_site);
740
+ current_site = current_itr.next ();
734
741
} else {
735
742
diff_virtual_memory_site (early_site, current_site);
736
743
early_site = early_itr.next ();
@@ -793,7 +800,6 @@ void MemDetailDiffReporter::old_virtual_memory_site(const VirtualMemoryAllocatio
793
800
794
801
void MemDetailDiffReporter::diff_virtual_memory_site (const VirtualMemoryAllocationSite* early,
795
802
const VirtualMemoryAllocationSite* current) const {
796
- assert (early->flag () == current->flag (), " Should be the same" );
797
803
diff_virtual_memory_site (current->call_stack (), current->reserved (), current->committed (),
798
804
early->reserved (), early->committed (), current->flag ());
799
805
}
0 commit comments