| Index: third_party/WebKit/Source/platform/exported/WebTraceLocation.cpp
|
| diff --git a/third_party/WebKit/Source/platform/exported/WebTraceLocation.cpp b/third_party/WebKit/Source/platform/exported/WebTraceLocation.cpp
|
| index 33517b360839080998f89a2522c494b6639d0453..c5dd479ffcb8a6346c006e649f67179d6be9b008 100644
|
| --- a/third_party/WebKit/Source/platform/exported/WebTraceLocation.cpp
|
| +++ b/third_party/WebKit/Source/platform/exported/WebTraceLocation.cpp
|
| @@ -4,16 +4,27 @@
|
|
|
| #include "public/platform/WebTraceLocation.h"
|
|
|
| +#include "wtf/Compiler.h"
|
| +#include "wtf/build_config.h"
|
| +
|
| +#if OS(WIN)
|
| +#include <intrin.h>
|
| +#endif
|
| +
|
| namespace blink {
|
|
|
| WebTraceLocation::WebTraceLocation()
|
| : m_functionName("unknown")
|
| , m_fileName("unknown")
|
| + , m_lineNumber(-1)
|
| + , m_programCounter(nullptr)
|
| { }
|
|
|
| -WebTraceLocation::WebTraceLocation(const char* functionName, const char* fileName)
|
| +WebTraceLocation::WebTraceLocation(const char* functionName, const char* fileName, int lineNumber, const void* programCounter)
|
| : m_functionName(functionName)
|
| , m_fileName(fileName)
|
| + , m_lineNumber(lineNumber)
|
| + , m_programCounter(programCounter)
|
| { }
|
|
|
| const char* WebTraceLocation::functionName() const
|
| @@ -26,4 +37,28 @@ const char* WebTraceLocation::fileName() const
|
| return m_fileName;
|
| }
|
|
|
| +int WebTraceLocation::lineNumber() const
|
| +{
|
| + return m_lineNumber;
|
| +}
|
| +
|
| +const void* WebTraceLocation::programCounter() const
|
| +{
|
| + return m_programCounter;
|
| +}
|
| +
|
| +#if COMPILER(MSVC)
|
| +__declspec(noinline)
|
| +#endif
|
| +const void* WebTraceLocation::getProgramCounter()
|
| +{
|
| +#if COMPILER(MSVC)
|
| + return _ReturnAddress();
|
| +#elif COMPILER(GCC) && !OS(NACL)
|
| + return __builtin_extract_return_addr(__builtin_return_address(0));
|
| +#else
|
| + return nullptr;
|
| +#endif
|
| +}
|
| +
|
| } // namespace blink
|
|
|