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

Unified Diff: third_party/WebKit/Source/platform/v8_inspector/V8HeapProfilerAgentImpl.cpp

Issue 1779033003: DevTools: always use 16bit strings for inspector protocol. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/platform/v8_inspector/V8HeapProfilerAgentImpl.cpp
diff --git a/third_party/WebKit/Source/platform/v8_inspector/V8HeapProfilerAgentImpl.cpp b/third_party/WebKit/Source/platform/v8_inspector/V8HeapProfilerAgentImpl.cpp
index 683a2f33077951998a931494ee1d1b55e5f41130..c7aa627a0403a0a073092c000b714ff902b84477 100644
--- a/third_party/WebKit/Source/platform/v8_inspector/V8HeapProfilerAgentImpl.cpp
+++ b/third_party/WebKit/Source/platform/v8_inspector/V8HeapProfilerAgentImpl.cpp
@@ -51,13 +51,20 @@ public:
InjectedScript* injectedScript = m_runtimeAgent->injectedScriptManager()->findInjectedScript(contextId);
if (!injectedScript)
return "";
- String16 name = injectedScript->origin().latin1Data();
- m_strings.append(name);
- return reinterpret_cast<const char *>(name.characters8());
+ String16 name = injectedScript->origin();
+ size_t offset = m_strings.size();
+ size_t length = name.length();
+ m_strings.resize(offset + length + 1);
dgozman 2016/03/10 18:59:47 This call invalidates previously returned char*
+ for (size_t i = 0; i < length; ++i) {
+ UChar ch = name[i];
+ m_strings[offset + i] = ch > 0xff ? '?' : static_cast<char>(ch);
+ }
+ m_strings[offset + length] = '\0';
+ return &*m_strings.begin() + offset;
}
private:
- protocol::Vector<String16> m_strings;
+ protocol::Vector<char> m_strings;
V8RuntimeAgentImpl* m_runtimeAgent;
};
@@ -77,7 +84,7 @@ private:
protocol::Frontend::HeapProfiler* m_frontend;
};
-v8::Local<v8::Object> objectByHeapObjectId(v8::Isolate* isolate, unsigned id)
+v8::Local<v8::Object> objectByHeapObjectId(v8::Isolate* isolate, int id)
{
v8::HeapProfiler* profiler = isolate->GetHeapProfiler();
v8::Local<v8::Value> value = profiler->FindObjectById(id);
@@ -88,13 +95,13 @@ v8::Local<v8::Object> objectByHeapObjectId(v8::Isolate* isolate, unsigned id)
class InspectableHeapObject final : public V8RuntimeAgent::Inspectable {
public:
- explicit InspectableHeapObject(unsigned heapObjectId) : m_heapObjectId(heapObjectId) { }
+ explicit InspectableHeapObject(int heapObjectId) : m_heapObjectId(heapObjectId) { }
v8::Local<v8::Value> get(v8::Local<v8::Context> context) override
{
return objectByHeapObjectId(context->GetIsolate(), m_heapObjectId);
}
private:
- unsigned m_heapObjectId;
+ int m_heapObjectId;
};
class HeapStatsStream final : public v8::OutputStream {
@@ -228,7 +235,7 @@ void V8HeapProfilerAgentImpl::takeHeapSnapshot(ErrorString* errorString, const p
void V8HeapProfilerAgentImpl::getObjectByHeapObjectId(ErrorString* error, const String16& heapSnapshotObjectId, const protocol::Maybe<String16>& objectGroup, OwnPtr<protocol::Runtime::RemoteObject>* result)
{
bool ok;
- unsigned id = heapSnapshotObjectId.toUInt(&ok);
+ int id = heapSnapshotObjectId.toInt(&ok);
if (!ok) {
*error = "Invalid heap snapshot object id";
return;
@@ -248,7 +255,7 @@ void V8HeapProfilerAgentImpl::getObjectByHeapObjectId(ErrorString* error, const
void V8HeapProfilerAgentImpl::addInspectedHeapObject(ErrorString* errorString, const String16& inspectedHeapObjectId)
{
bool ok;
- unsigned id = inspectedHeapObjectId.toUInt(&ok);
+ int id = inspectedHeapObjectId.toInt(&ok);
if (!ok) {
*errorString = "Invalid heap snapshot object id";
return;

Powered by Google App Engine
This is Rietveld 408576698