Index: src/heap/gc-idle-time-handler.cc |
diff --git a/src/heap/gc-idle-time-handler.cc b/src/heap/gc-idle-time-handler.cc |
index 730d2bb2568888ca8208e875c0ab6587cab101b1..9bc7078c7461c1782006f5089f33dbbeb6e1a9b2 100644 |
--- a/src/heap/gc-idle-time-handler.cc |
+++ b/src/heap/gc-idle-time-handler.cc |
@@ -189,9 +189,9 @@ bool GCIdleTimeHandler::ShouldDoFinalIncrementalMarkCompact( |
// request, we finalize sweeping here. |
// (6) If incremental marking is in progress, we perform a marking step. Note, |
// that this currently may trigger a full garbage collection. |
-GCIdleTimeAction GCIdleTimeHandler::Compute(size_t idle_time_in_ms, |
+GCIdleTimeAction GCIdleTimeHandler::Compute(double idle_time_in_ms, |
HeapState heap_state) { |
- if (idle_time_in_ms == 0) { |
+ if (idle_time_in_ms <= 0.0) { |
if (heap_state.incremental_marking_stopped) { |
if (ShouldDoContextDisposalMarkCompact( |
heap_state.contexts_disposed, |
@@ -203,7 +203,7 @@ GCIdleTimeAction GCIdleTimeHandler::Compute(size_t idle_time_in_ms, |
} |
if (ShouldDoScavenge( |
- idle_time_in_ms, heap_state.new_space_capacity, |
+ static_cast<size_t>(idle_time_in_ms), heap_state.new_space_capacity, |
heap_state.used_new_space_size, |
heap_state.scavenge_speed_in_bytes_per_ms, |
heap_state.new_space_allocation_throughput_in_bytes_per_ms)) { |
@@ -219,7 +219,8 @@ GCIdleTimeAction GCIdleTimeHandler::Compute(size_t idle_time_in_ms, |
} |
if (heap_state.incremental_marking_stopped) { |
- if (ShouldDoMarkCompact(idle_time_in_ms, heap_state.size_of_objects, |
+ if (ShouldDoMarkCompact(static_cast<size_t>(idle_time_in_ms), |
+ heap_state.size_of_objects, |
heap_state.mark_compact_speed_in_bytes_per_ms)) { |
// If there are no more than two GCs left in this idle round and we are |
// allowed to do a full GC, then make those GCs full in order to compact |
@@ -228,7 +229,7 @@ GCIdleTimeAction GCIdleTimeHandler::Compute(size_t idle_time_in_ms, |
// can get rid of this special case and always start incremental marking. |
int remaining_mark_sweeps = |
kMaxMarkCompactsInIdleRound - mark_compacts_since_idle_round_started_; |
- if (idle_time_in_ms > kMaxFrameRenderingIdleTime && |
+ if (static_cast<size_t>(idle_time_in_ms) > kMaxFrameRenderingIdleTime && |
(remaining_mark_sweeps <= 2 || |
!heap_state.can_start_incremental_marking)) { |
return GCIdleTimeAction::FullGC(); |
@@ -240,7 +241,7 @@ GCIdleTimeAction GCIdleTimeHandler::Compute(size_t idle_time_in_ms, |
} |
// TODO(hpayer): Estimate finalize sweeping time. |
if (heap_state.sweeping_in_progress && |
- idle_time_in_ms >= kMinTimeForFinalizeSweeping) { |
+ static_cast<size_t>(idle_time_in_ms) >= kMinTimeForFinalizeSweeping) { |
return GCIdleTimeAction::FinalizeSweeping(); |
} |
@@ -249,7 +250,8 @@ GCIdleTimeAction GCIdleTimeHandler::Compute(size_t idle_time_in_ms, |
return GCIdleTimeAction::Nothing(); |
} |
size_t step_size = EstimateMarkingStepSize( |
- idle_time_in_ms, heap_state.incremental_marking_speed_in_bytes_per_ms); |
+ static_cast<size_t>(idle_time_in_ms), |
+ heap_state.incremental_marking_speed_in_bytes_per_ms); |
return GCIdleTimeAction::IncrementalMarking(step_size); |
} |
} |