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

Side by Side Diff: Source/core/inspector/TraceEventDispatcher.h

Issue 184303002: DevTools: support TRACE_VALUE_TYPE_COPY_STRING (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | Source/core/inspector/TraceEventDispatcher.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 , m_id(id) 67 , m_id(id)
68 , m_threadIdentifier(threadIdentifier) 68 , m_threadIdentifier(threadIdentifier)
69 , m_argumentCount(argumentCount) 69 , m_argumentCount(argumentCount)
70 { 70 {
71 if (m_argumentCount > MaxArguments) { 71 if (m_argumentCount > MaxArguments) {
72 ASSERT_NOT_REACHED(); 72 ASSERT_NOT_REACHED();
73 m_argumentCount = MaxArguments; 73 m_argumentCount = MaxArguments;
74 } 74 }
75 for (int i = 0; i < m_argumentCount; ++i) { 75 for (int i = 0; i < m_argumentCount; ++i) {
76 m_argumentNames[i] = argumentNames[i]; 76 m_argumentNames[i] = argumentNames[i];
77 m_argumentTypes[i] = argumentTypes[i]; 77 if (argumentTypes[i] == TRACE_VALUE_TYPE_COPY_STRING) {
78 m_argumentValues[i] = argumentValues[i]; 78 m_stringArguments[i] = reinterpret_cast<const char*>(argumen tValues[i]);
79 m_argumentValues[i].m_string = reinterpret_cast<const char*> (m_stringArguments[i].characters8());
80 m_argumentTypes[i] = TRACE_VALUE_TYPE_STRING;
81 } else {
82 m_argumentValues[i].m_int = argumentValues[i];
83 m_argumentTypes[i] = argumentTypes[i];
84 }
79 } 85 }
80 } 86 }
81 87
82 double timestamp() const { return m_timestamp; } 88 double timestamp() const { return m_timestamp; }
83 char phase() const { return m_phase; } 89 char phase() const { return m_phase; }
84 const char* name() const { return m_name; } 90 const char* name() const { return m_name; }
85 unsigned long long id() const { return m_id; } 91 unsigned long long id() const { return m_id; }
86 ThreadIdentifier threadIdentifier() const { return m_threadIdentifier; } 92 ThreadIdentifier threadIdentifier() const { return m_threadIdentifier; }
87 int argumentCount() const { return m_argumentCount; } 93 int argumentCount() const { return m_argumentCount; }
88 bool isNull() const { return !m_name; } 94 bool isNull() const { return !m_name; }
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 const WebCore::TraceEvent::TraceValueUnion& parameter(const char* name, unsigned char expectedType) const; 126 const WebCore::TraceEvent::TraceValueUnion& parameter(const char* name, unsigned char expectedType) const;
121 127
122 double m_timestamp; 128 double m_timestamp;
123 char m_phase; 129 char m_phase;
124 const char* m_name; 130 const char* m_name;
125 unsigned long long m_id; 131 unsigned long long m_id;
126 ThreadIdentifier m_threadIdentifier; 132 ThreadIdentifier m_threadIdentifier;
127 int m_argumentCount; 133 int m_argumentCount;
128 const char* m_argumentNames[MaxArguments]; 134 const char* m_argumentNames[MaxArguments];
129 unsigned char m_argumentTypes[MaxArguments]; 135 unsigned char m_argumentTypes[MaxArguments];
130 unsigned long long m_argumentValues[MaxArguments]; 136 WebCore::TraceEvent::TraceValueUnion m_argumentValues[MaxArguments];
137 // These are only used as buffers for TRACE_VALUE_TYPE_COPY_STRING.
138 // Consider allocating the entire vector of buffered trace events and th eir copied arguments out of a special arena
139 // to make things more compact.
140 String m_stringArguments[MaxArguments];
131 }; 141 };
132 142
133 typedef void (TraceEventTargetBase::*TraceEventHandlerMethod)(const TraceEve nt&); 143 typedef void (TraceEventTargetBase::*TraceEventHandlerMethod)(const TraceEve nt&);
134 144
135 static TraceEventDispatcher* instance() 145 static TraceEventDispatcher* instance()
136 { 146 {
137 DEFINE_STATIC_LOCAL(TraceEventDispatcher, instance, ()); 147 DEFINE_STATIC_LOCAL(TraceEventDispatcher, instance, ());
138 return &instance; 148 return &instance;
139 } 149 }
140 150
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 double m_lastEventProcessingTime; 193 double m_lastEventProcessingTime;
184 }; 194 };
185 195
186 template<typename C> struct TraceEventTarget : public TraceEventTargetBase { 196 template<typename C> struct TraceEventTarget : public TraceEventTargetBase {
187 typedef void (C::*TraceEventHandler)(const TraceEventDispatcher::TraceEvent& ); 197 typedef void (C::*TraceEventHandler)(const TraceEventDispatcher::TraceEvent& );
188 }; 198 };
189 199
190 } // namespace WebCore 200 } // namespace WebCore
191 201
192 #endif // TraceEventDispatcher_h 202 #endif // TraceEventDispatcher_h
OLDNEW
« no previous file with comments | « no previous file | Source/core/inspector/TraceEventDispatcher.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698