Index: src/heap/mark-compact.cc |
diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc |
index 77d084266264fbd78f56bc16115818a92b223ff4..961f5b38329a1266c5b231446f63d04cac6ad0a2 100644 |
--- a/src/heap/mark-compact.cc |
+++ b/src/heap/mark-compact.cc |
@@ -261,6 +261,11 @@ |
bool MarkCompactCollector::StartCompaction(CompactionMode mode) { |
if (!compacting_) { |
DCHECK(evacuation_candidates_.length() == 0); |
+ |
+#ifdef ENABLE_GDB_JIT_INTERFACE |
+ // If GDBJIT interface is active disable compaction. |
+ if (FLAG_gdbjit) return false; |
+#endif |
CollectEvacuationCandidates(heap()->old_pointer_space()); |
CollectEvacuationCandidates(heap()->old_data_space()); |
@@ -3218,6 +3223,11 @@ |
} |
freed_bytes = Free<parallelism>(space, free_list, free_start, size); |
max_freed_bytes = Max(freed_bytes, max_freed_bytes); |
+#ifdef ENABLE_GDB_JIT_INTERFACE |
+ if (FLAG_gdbjit && space->identity() == CODE_SPACE) { |
+ GDBJITInterface::RemoveCodeRange(free_start, free_end); |
+ } |
+#endif |
} |
HeapObject* live_object = HeapObject::FromAddress(free_end); |
DCHECK(Marking::IsBlack(Marking::MarkBitFrom(live_object))); |
@@ -3247,6 +3257,11 @@ |
} |
freed_bytes = Free<parallelism>(space, free_list, free_start, size); |
max_freed_bytes = Max(freed_bytes, max_freed_bytes); |
+#ifdef ENABLE_GDB_JIT_INTERFACE |
+ if (FLAG_gdbjit && space->identity() == CODE_SPACE) { |
+ GDBJITInterface::RemoveCodeRange(free_start, p->area_end()); |
+ } |
+#endif |
} |
p->ResetLiveBytes(); |