diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2010-05-10 09:58:20 -0700 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2010-05-10 09:58:20 -0700 |
commit | 615d8906226ffc56238b44141cdb3374f47e805a (patch) | |
tree | 3850f314701edf5156ec52f296eac9f38959bbfe /deps/v8/src/platform-win32.cc | |
parent | 8ab238e7de8429961ce4d6fd9114555e5df90a13 (diff) | |
download | node-new-615d8906226ffc56238b44141cdb3374f47e805a.tar.gz |
Upgrade V8 to 2.2.9
Diffstat (limited to 'deps/v8/src/platform-win32.cc')
-rw-r--r-- | deps/v8/src/platform-win32.cc | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/deps/v8/src/platform-win32.cc b/deps/v8/src/platform-win32.cc index d03a0a964e..bee517364a 100644 --- a/deps/v8/src/platform-win32.cc +++ b/deps/v8/src/platform-win32.cc @@ -1249,16 +1249,16 @@ int OS::StackWalk(Vector<OS::StackFrame> frames) { // Try to locate a symbol for this frame. DWORD64 symbol_displacement; - IMAGEHLP_SYMBOL64* symbol = NULL; - symbol = NewArray<IMAGEHLP_SYMBOL64>(kStackWalkMaxNameLen); - if (!symbol) return kStackWalkError; // Out of memory. - memset(symbol, 0, sizeof(IMAGEHLP_SYMBOL64) + kStackWalkMaxNameLen); - symbol->SizeOfStruct = sizeof(IMAGEHLP_SYMBOL64); - symbol->MaxNameLength = kStackWalkMaxNameLen; + SmartPointer<IMAGEHLP_SYMBOL64> symbol( + NewArray<IMAGEHLP_SYMBOL64>(kStackWalkMaxNameLen)); + if (symbol.is_empty()) return kStackWalkError; // Out of memory. + memset(*symbol, 0, sizeof(IMAGEHLP_SYMBOL64) + kStackWalkMaxNameLen); + (*symbol)->SizeOfStruct = sizeof(IMAGEHLP_SYMBOL64); + (*symbol)->MaxNameLength = kStackWalkMaxNameLen; ok = _SymGetSymFromAddr64(process_handle, // hProcess stack_frame.AddrPC.Offset, // Address &symbol_displacement, // Displacement - symbol); // Symbol + *symbol); // Symbol if (ok) { // Try to locate more source information for the symbol. IMAGEHLP_LINE64 Line; @@ -1276,13 +1276,13 @@ int OS::StackWalk(Vector<OS::StackFrame> frames) { SNPrintF(MutableCStrVector(frames[frames_count].text, kStackWalkMaxTextLen), "%s %s:%d:%d", - symbol->Name, Line.FileName, Line.LineNumber, + (*symbol)->Name, Line.FileName, Line.LineNumber, line_displacement); } else { SNPrintF(MutableCStrVector(frames[frames_count].text, kStackWalkMaxTextLen), "%s", - symbol->Name); + (*symbol)->Name); } // Make sure line termination is in place. frames[frames_count].text[kStackWalkMaxTextLen - 1] = '\0'; @@ -1294,11 +1294,9 @@ int OS::StackWalk(Vector<OS::StackFrame> frames) { // module will never be found). int err = GetLastError(); if (err != ERROR_MOD_NOT_FOUND) { - DeleteArray(symbol); break; } } - DeleteArray(symbol); frames_count++; } |