Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(100)

Side by Side Diff: src/liveedit.cc

Issue 868883002: Remove the dependency of Zone on Isolate (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix compilation issues Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/lithium-allocator.cc ('k') | src/mips/regexp-macro-assembler-mips.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 5
6 #include "src/v8.h" 6 #include "src/v8.h"
7 7
8 #include "src/liveedit.h" 8 #include "src/liveedit.h"
9 9
10 #include "src/code-stubs.h" 10 #include "src/code-stubs.h"
(...skipping 1730 matching lines...) Expand 10 before | Expand all | Expand 10 after
1741 const char* GetNotFoundMessage() const { 1741 const char* GetNotFoundMessage() const {
1742 return NULL; 1742 return NULL;
1743 } 1743 }
1744 private: 1744 private:
1745 Handle<JSArray> m_shared_info_array; 1745 Handle<JSArray> m_shared_info_array;
1746 Handle<JSArray> m_result; 1746 Handle<JSArray> m_result;
1747 }; 1747 };
1748 1748
1749 1749
1750 // Drops all call frame matched by target and all frames above them. 1750 // Drops all call frame matched by target and all frames above them.
1751 template<typename TARGET> 1751 template <typename TARGET>
1752 static const char* DropActivationsInActiveThreadImpl( 1752 static const char* DropActivationsInActiveThreadImpl(Isolate* isolate,
1753 Isolate* isolate, 1753 TARGET& target, // NOLINT
1754 TARGET& target, // NOLINT 1754 bool do_drop) {
1755 bool do_drop) {
1756 Debug* debug = isolate->debug(); 1755 Debug* debug = isolate->debug();
1757 Zone zone(isolate); 1756 Zone zone;
1758 Vector<StackFrame*> frames = CreateStackMap(isolate, &zone); 1757 Vector<StackFrame*> frames = CreateStackMap(isolate, &zone);
1759 1758
1760 1759
1761 int top_frame_index = -1; 1760 int top_frame_index = -1;
1762 int frame_index = 0; 1761 int frame_index = 0;
1763 for (; frame_index < frames.length(); frame_index++) { 1762 for (; frame_index < frames.length(); frame_index++) {
1764 StackFrame* frame = frames[frame_index]; 1763 StackFrame* frame = frames[frame_index];
1765 if (frame->id() == debug->break_frame_id()) { 1764 if (frame->id() == debug->break_frame_id()) {
1766 top_frame_index = frame_index; 1765 top_frame_index = frame_index;
1767 break; 1766 break;
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
1851 new_id, drop_mode, restarter_frame_function_pointer); 1850 new_id, drop_mode, restarter_frame_function_pointer);
1852 return NULL; 1851 return NULL;
1853 } 1852 }
1854 1853
1855 1854
1856 // Fills result array with statuses of functions. Modifies the stack 1855 // Fills result array with statuses of functions. Modifies the stack
1857 // removing all listed function if possible and if do_drop is true. 1856 // removing all listed function if possible and if do_drop is true.
1858 static const char* DropActivationsInActiveThread( 1857 static const char* DropActivationsInActiveThread(
1859 Handle<JSArray> shared_info_array, Handle<JSArray> result, bool do_drop) { 1858 Handle<JSArray> shared_info_array, Handle<JSArray> result, bool do_drop) {
1860 MultipleFunctionTarget target(shared_info_array, result); 1859 MultipleFunctionTarget target(shared_info_array, result);
1860 Isolate* isolate = shared_info_array->GetIsolate();
1861 1861
1862 const char* message = DropActivationsInActiveThreadImpl( 1862 const char* message =
1863 shared_info_array->GetIsolate(), target, do_drop); 1863 DropActivationsInActiveThreadImpl(isolate, target, do_drop);
1864 if (message) { 1864 if (message) {
1865 return message; 1865 return message;
1866 } 1866 }
1867 1867
1868 Isolate* isolate = shared_info_array->GetIsolate();
1869 int array_len = GetArrayLength(shared_info_array); 1868 int array_len = GetArrayLength(shared_info_array);
1870 1869
1871 // Replace "blocked on active" with "replaced on active" status. 1870 // Replace "blocked on active" with "replaced on active" status.
1872 for (int i = 0; i < array_len; i++) { 1871 for (int i = 0; i < array_len; i++) {
1873 Handle<Object> obj = 1872 Handle<Object> obj =
1874 Object::GetElement(isolate, result, i).ToHandleChecked(); 1873 Object::GetElement(isolate, result, i).ToHandleChecked();
1875 if (*obj == Smi::FromInt(LiveEdit::FUNCTION_BLOCKED_ON_ACTIVE_STACK)) { 1874 if (*obj == Smi::FromInt(LiveEdit::FUNCTION_BLOCKED_ON_ACTIVE_STACK)) {
1876 Handle<Object> replaced( 1875 Handle<Object> replaced(
1877 Smi::FromInt(LiveEdit::FUNCTION_REPLACED_ON_ACTIVE_STACK), isolate); 1876 Smi::FromInt(LiveEdit::FUNCTION_REPLACED_ON_ACTIVE_STACK), isolate);
1878 SetElementSloppy(result, i, replaced); 1877 SetElementSloppy(result, i, replaced);
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
2020 JavaScriptFrame* m_frame; 2019 JavaScriptFrame* m_frame;
2021 LiveEdit::FunctionPatchabilityStatus m_saved_status; 2020 LiveEdit::FunctionPatchabilityStatus m_saved_status;
2022 }; 2021 };
2023 2022
2024 2023
2025 // Finds a drops required frame and all frames above. 2024 // Finds a drops required frame and all frames above.
2026 // Returns error message or NULL. 2025 // Returns error message or NULL.
2027 const char* LiveEdit::RestartFrame(JavaScriptFrame* frame) { 2026 const char* LiveEdit::RestartFrame(JavaScriptFrame* frame) {
2028 SingleFrameTarget target(frame); 2027 SingleFrameTarget target(frame);
2029 2028
2030 const char* result = DropActivationsInActiveThreadImpl( 2029 const char* result =
2031 frame->isolate(), target, true); 2030 DropActivationsInActiveThreadImpl(frame->isolate(), target, true);
2032 if (result != NULL) { 2031 if (result != NULL) {
2033 return result; 2032 return result;
2034 } 2033 }
2035 if (target.saved_status() == LiveEdit::FUNCTION_BLOCKED_UNDER_NATIVE_CODE) { 2034 if (target.saved_status() == LiveEdit::FUNCTION_BLOCKED_UNDER_NATIVE_CODE) {
2036 return "Function is blocked under native code"; 2035 return "Function is blocked under native code";
2037 } 2036 }
2038 if (target.saved_status() == LiveEdit::FUNCTION_BLOCKED_UNDER_GENERATOR) { 2037 if (target.saved_status() == LiveEdit::FUNCTION_BLOCKED_UNDER_GENERATOR) {
2039 return "Function is blocked under a generator activation"; 2038 return "Function is blocked under a generator activation";
2040 } 2039 }
2041 return NULL; 2040 return NULL;
(...skipping 29 matching lines...) Expand all
2071 void LiveEditFunctionTracker::RecordRootFunctionInfo(Handle<Code> code) { 2070 void LiveEditFunctionTracker::RecordRootFunctionInfo(Handle<Code> code) {
2072 isolate_->active_function_info_listener()->FunctionCode(code); 2071 isolate_->active_function_info_listener()->FunctionCode(code);
2073 } 2072 }
2074 2073
2075 2074
2076 bool LiveEditFunctionTracker::IsActive(Isolate* isolate) { 2075 bool LiveEditFunctionTracker::IsActive(Isolate* isolate) {
2077 return isolate->active_function_info_listener() != NULL; 2076 return isolate->active_function_info_listener() != NULL;
2078 } 2077 }
2079 2078
2080 } } // namespace v8::internal 2079 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/lithium-allocator.cc ('k') | src/mips/regexp-macro-assembler-mips.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698