Skip to content

Commit 80a7a65

Browse files
committed
Use saturating_sub in gc trigger to avoid overflow
1 parent 457c572 commit 80a7a65

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

mmtk/src/gc_trigger.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,9 +128,8 @@ impl GCTriggerPolicy<JuliaVM> for JuliaGCTrigger {
128128
let heap_size = conversions::pages_to_bytes(reserved_pages_now);
129129

130130
let user_max = self.max_total_memory.load(Ordering::Relaxed) * 80 / 100;
131-
let alloc_diff = self.before_free_heap_size.load(Ordering::Relaxed)
132-
- self.old_heap_size.load(Ordering::Relaxed);
133-
let freed_diff = self.before_free_heap_size.load(Ordering::Relaxed) - heap_size;
131+
let alloc_diff = self.before_free_heap_size.load(Ordering::Relaxed).saturating_sub(self.old_heap_size.load(Ordering::Relaxed));
132+
let freed_diff = self.before_free_heap_size.load(Ordering::Relaxed).saturating_sub(heap_size);
134133
self.old_heap_size.store(heap_size, Ordering::Relaxed);
135134

136135
// update the heap target only if the user did not force a GC

0 commit comments

Comments
 (0)