OLD | NEW |
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 #ifndef V8_DEBUG_H_ | 5 #ifndef V8_DEBUG_H_ |
6 #define V8_DEBUG_H_ | 6 #define V8_DEBUG_H_ |
7 | 7 |
8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
9 #include "src/arguments.h" | 9 #include "src/arguments.h" |
10 #include "src/assembler.h" | 10 #include "src/assembler.h" |
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
254 | 254 |
255 Isolate* isolate_; | 255 Isolate* isolate_; |
256 }; | 256 }; |
257 | 257 |
258 | 258 |
259 // Linked list holding debug info objects. The debug info objects are kept as | 259 // Linked list holding debug info objects. The debug info objects are kept as |
260 // weak handles to avoid a debug info object to keep a function alive. | 260 // weak handles to avoid a debug info object to keep a function alive. |
261 class DebugInfoListNode { | 261 class DebugInfoListNode { |
262 public: | 262 public: |
263 explicit DebugInfoListNode(DebugInfo* debug_info); | 263 explicit DebugInfoListNode(DebugInfo* debug_info); |
264 virtual ~DebugInfoListNode(); | 264 virtual ~DebugInfoListNode() { ClearInfo(); } |
265 | 265 |
266 DebugInfoListNode* next() { return next_; } | 266 DebugInfoListNode* next() { return next_; } |
267 void set_next(DebugInfoListNode* next) { next_ = next; } | 267 void set_next(DebugInfoListNode* next) { next_ = next; } |
268 Handle<DebugInfo> debug_info() { return debug_info_; } | 268 Handle<DebugInfo> debug_info() { return Handle<DebugInfo>(debug_info_); } |
| 269 |
| 270 void ClearInfo(); |
269 | 271 |
270 private: | 272 private: |
271 // Global (weak) handle to the debug info object. | 273 // Global (weak) handle to the debug info object. |
272 Handle<DebugInfo> debug_info_; | 274 DebugInfo** debug_info_; |
273 | 275 |
274 // Next pointer for linked list. | 276 // Next pointer for linked list. |
275 DebugInfoListNode* next_; | 277 DebugInfoListNode* next_; |
276 }; | 278 }; |
277 | 279 |
278 | 280 |
279 | 281 |
280 // Message delivered to the message handler callback. This is either a debugger | 282 // Message delivered to the message handler callback. This is either a debugger |
281 // event or the response to a command. | 283 // event or the response to a command. |
282 class MessageImpl: public v8::Debug::Message { | 284 class MessageImpl: public v8::Debug::Message { |
(...skipping 557 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
840 // several frames above. | 842 // several frames above. |
841 // There is no calling conventions here, because it never actually gets | 843 // There is no calling conventions here, because it never actually gets |
842 // called, it only gets returned to. | 844 // called, it only gets returned to. |
843 static void GenerateFrameDropperLiveEdit(MacroAssembler* masm); | 845 static void GenerateFrameDropperLiveEdit(MacroAssembler* masm); |
844 }; | 846 }; |
845 | 847 |
846 | 848 |
847 } } // namespace v8::internal | 849 } } // namespace v8::internal |
848 | 850 |
849 #endif // V8_DEBUG_H_ | 851 #endif // V8_DEBUG_H_ |
OLD | NEW |