Index: src/debug/debug.cc |
diff --git a/src/debug/debug.cc b/src/debug/debug.cc |
index de9c44079519143b595054d83721e2c61ffb63b3..a75ece1bf312ddc292a7cd66b267542a3116b0be 100644 |
--- a/src/debug/debug.cc |
+++ b/src/debug/debug.cc |
@@ -1244,7 +1244,7 @@ bool Debug::PrepareFunctionForBreakPoints(Handle<SharedFunctionInfo> shared) { |
// cover this, because the given function might have been inlined into code |
// for which no JSFunction exists. |
{ |
- SharedFunctionInfo::Iterator iterator(isolate_); |
+ SharedFunctionInfo::GlobalIterator iterator(isolate_); |
while (SharedFunctionInfo* shared = iterator.Next()) { |
shared->ClearCodeFromOptimizedCodeMap(); |
} |
@@ -1335,24 +1335,18 @@ void FindBreakablePositions(Handle<DebugInfo> debug_info, int start_position, |
bool Debug::GetPossibleBreakpoints(Handle<Script> script, int start_position, |
int end_position, std::set<int>* positions) { |
while (true) { |
- if (!script->shared_function_infos()->IsWeakFixedArray()) return false; |
- |
- WeakFixedArray* infos = |
- WeakFixedArray::cast(script->shared_function_infos()); |
HandleScope scope(isolate_); |
List<Handle<SharedFunctionInfo>> candidates; |
- { |
- WeakFixedArray::Iterator iterator(infos); |
- SharedFunctionInfo* info; |
- while ((info = iterator.Next<SharedFunctionInfo>())) { |
- if (info->end_position() < start_position || |
- info->start_position() >= end_position) { |
- continue; |
- } |
- if (!info->IsSubjectToDebugging()) continue; |
- if (!info->HasDebugCode() && !info->allows_lazy_compilation()) continue; |
- candidates.Add(i::handle(info)); |
+ SharedFunctionInfo::ScriptIterator iterator(script); |
+ for (SharedFunctionInfo* info = iterator.Next(); info != nullptr; |
+ info = iterator.Next()) { |
+ if (info->end_position() < start_position || |
+ info->start_position() >= end_position) { |
+ continue; |
} |
+ if (!info->IsSubjectToDebugging()) continue; |
+ if (!info->HasDebugCode() && !info->allows_lazy_compilation()) continue; |
+ candidates.Add(i::handle(info)); |
} |
bool was_compiled = false; |
@@ -1462,15 +1456,14 @@ Handle<Object> Debug::FindSharedFunctionInfoInScript(Handle<Script> script, |
// find the inner most function containing this position. |
// If there is no shared function info for this script at all, there is |
// no point in looking for it by walking the heap. |
- if (!script->shared_function_infos()->IsWeakFixedArray()) break; |
SharedFunctionInfo* shared; |
{ |
SharedFunctionInfoFinder finder(position); |
- WeakFixedArray::Iterator iterator(script->shared_function_infos()); |
- SharedFunctionInfo* candidate; |
- while ((candidate = iterator.Next<SharedFunctionInfo>())) { |
- finder.NewCandidate(candidate); |
+ SharedFunctionInfo::ScriptIterator iterator(script); |
+ for (SharedFunctionInfo* info = iterator.Next(); info != nullptr; |
+ info = iterator.Next()) { |
+ finder.NewCandidate(info); |
} |
shared = finder.Result(); |
if (shared == NULL) break; |