OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2011, Google Inc. All rights reserved. | 2 * Copyright (c) 2011, 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 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 v8::HandleScope handleScope(isolate); | 272 v8::HandleScope handleScope(isolate); |
273 | 273 |
274 class DOMNodeWrapperVisitor : public v8::PersistentHandleVisitor { | 274 class DOMNodeWrapperVisitor : public v8::PersistentHandleVisitor { |
275 public: | 275 public: |
276 DOMNodeWrapperVisitor(WrappedNodeVisitor* visitor, v8::Isolate* isolate) | 276 DOMNodeWrapperVisitor(WrappedNodeVisitor* visitor, v8::Isolate* isolate) |
277 : m_visitor(visitor) | 277 : m_visitor(visitor) |
278 , m_isolate(isolate) | 278 , m_isolate(isolate) |
279 { | 279 { |
280 } | 280 } |
281 | 281 |
| 282 #ifdef V8_USE_OLD_STYLE_PERSISTENT_HANDLE_VISITORS |
282 virtual void VisitPersistentHandle(v8::Persistent<v8::Value> value, uint
16_t classId) OVERRIDE | 283 virtual void VisitPersistentHandle(v8::Persistent<v8::Value> value, uint
16_t classId) OVERRIDE |
283 { | 284 { |
| 285 VisitPersistentHandle(&value, classId); |
| 286 } |
| 287 |
| 288 virtual void VisitPersistentHandle(v8::Persistent<v8::Value>* value, uin
t16_t classId) |
| 289 #else |
| 290 virtual void VisitPersistentHandle(v8::Persistent<v8::Value>* value, uin
t16_t classId) OVERRIDE |
| 291 #endif |
| 292 { |
284 if (classId != v8DOMNodeClassId) | 293 if (classId != v8DOMNodeClassId) |
285 return; | 294 return; |
286 UNUSED_PARAM(m_isolate); | 295 UNUSED_PARAM(m_isolate); |
287 ASSERT(V8Node::HasInstance(value, m_isolate, worldType(m_isolate))); | 296 ASSERT(V8Node::HasInstance(*value, m_isolate, worldType(m_isolate)))
; |
288 ASSERT(value->IsObject()); | 297 ASSERT((*value)->IsObject()); |
289 #ifdef V8_USE_UNSAFE_HANDLES | 298 #ifdef V8_USE_UNSAFE_HANDLES |
290 v8::Persistent<v8::Object> wrapper = v8::Persistent<v8::Object>::Cas
t(value); | 299 v8::Persistent<v8::Object> wrapper = v8::Persistent<v8::Object>::Cas
t(*value); |
291 #else | 300 #else |
292 v8::Persistent<v8::Object>& wrapper = v8::Persistent<v8::Object>::Ca
st(value); | 301 v8::Persistent<v8::Object>& wrapper = v8::Persistent<v8::Object>::Ca
st(*value); |
293 #endif | 302 #endif |
294 m_visitor->visitNode(V8Node::toNative(wrapper)); | 303 m_visitor->visitNode(V8Node::toNative(wrapper)); |
295 } | 304 } |
296 | 305 |
297 private: | 306 private: |
298 WrappedNodeVisitor* m_visitor; | 307 WrappedNodeVisitor* m_visitor; |
299 v8::Isolate* m_isolate; | 308 v8::Isolate* m_isolate; |
300 } wrapperVisitor(visitor, isolate); | 309 } wrapperVisitor(visitor, isolate); |
301 | 310 |
302 v8::V8::VisitHandlesWithClassIds(&wrapperVisitor); | 311 v8::V8::VisitHandlesWithClassIds(&wrapperVisitor); |
303 } | 312 } |
304 | 313 |
305 void ScriptProfiler::visitExternalStrings(ExternalStringVisitor* visitor) | 314 void ScriptProfiler::visitExternalStrings(ExternalStringVisitor* visitor) |
306 { | 315 { |
307 V8PerIsolateData::current()->visitExternalStrings(visitor); | 316 V8PerIsolateData::current()->visitExternalStrings(visitor); |
308 } | 317 } |
309 | 318 |
310 void ScriptProfiler::visitExternalArrays(ExternalArrayVisitor* visitor) | 319 void ScriptProfiler::visitExternalArrays(ExternalArrayVisitor* visitor) |
311 { | 320 { |
312 class DOMObjectWrapperVisitor : public v8::PersistentHandleVisitor { | 321 class DOMObjectWrapperVisitor : public v8::PersistentHandleVisitor { |
313 public: | 322 public: |
314 explicit DOMObjectWrapperVisitor(ExternalArrayVisitor* visitor) | 323 explicit DOMObjectWrapperVisitor(ExternalArrayVisitor* visitor) |
315 : m_visitor(visitor) | 324 : m_visitor(visitor) |
316 { | 325 { |
317 } | 326 } |
318 | 327 |
| 328 #ifdef V8_USE_OLD_STYLE_PERSISTENT_HANDLE_VISITORS |
319 virtual void VisitPersistentHandle(v8::Persistent<v8::Value> value, uint
16_t classId) OVERRIDE | 329 virtual void VisitPersistentHandle(v8::Persistent<v8::Value> value, uint
16_t classId) OVERRIDE |
320 { | 330 { |
| 331 VisitPersistentHandle(&value, classId); |
| 332 } |
| 333 |
| 334 virtual void VisitPersistentHandle(v8::Persistent<v8::Value>* value, uin
t16_t classId) |
| 335 #else |
| 336 virtual void VisitPersistentHandle(v8::Persistent<v8::Value>* value, uin
t16_t classId) OVERRIDE |
| 337 #endif |
| 338 { |
321 if (classId != v8DOMObjectClassId) | 339 if (classId != v8DOMObjectClassId) |
322 return; | 340 return; |
323 ASSERT(value->IsObject()); | 341 ASSERT((*value)->IsObject()); |
324 #ifdef V8_USE_UNSAFE_HANDLES | 342 #ifdef V8_USE_UNSAFE_HANDLES |
325 v8::Persistent<v8::Object> wrapper = v8::Persistent<v8::Object>::Cas
t(value); | 343 v8::Persistent<v8::Object> wrapper = v8::Persistent<v8::Object>::Cas
t(*value); |
326 #else | 344 #else |
327 v8::Persistent<v8::Object>& wrapper = v8::Persistent<v8::Object>::Ca
st(value); | 345 v8::Persistent<v8::Object>& wrapper = v8::Persistent<v8::Object>::Ca
st(*value); |
328 #endif | 346 #endif |
329 if (!toWrapperTypeInfo(wrapper)->isSubclass(&V8ArrayBufferView::info
)) | 347 if (!toWrapperTypeInfo(wrapper)->isSubclass(&V8ArrayBufferView::info
)) |
330 return; | 348 return; |
331 m_visitor->visitJSExternalArray(V8ArrayBufferView::toNative(wrapper)
); | 349 m_visitor->visitJSExternalArray(V8ArrayBufferView::toNative(wrapper)
); |
332 } | 350 } |
333 | 351 |
334 private: | 352 private: |
335 ExternalArrayVisitor* m_visitor; | 353 ExternalArrayVisitor* m_visitor; |
336 } wrapperVisitor(visitor); | 354 } wrapperVisitor(visitor); |
337 | 355 |
(...skipping 15 matching lines...) Expand all Loading... |
353 return profiler->GetProfilerMemorySize(); | 371 return profiler->GetProfilerMemorySize(); |
354 } | 372 } |
355 | 373 |
356 ProfileNameIdleTimeMap* ScriptProfiler::currentProfileNameIdleTimeMap() | 374 ProfileNameIdleTimeMap* ScriptProfiler::currentProfileNameIdleTimeMap() |
357 { | 375 { |
358 AtomicallyInitializedStatic(WTF::ThreadSpecific<ProfileNameIdleTimeMap>*, ma
p = new WTF::ThreadSpecific<ProfileNameIdleTimeMap>); | 376 AtomicallyInitializedStatic(WTF::ThreadSpecific<ProfileNameIdleTimeMap>*, ma
p = new WTF::ThreadSpecific<ProfileNameIdleTimeMap>); |
359 return *map; | 377 return *map; |
360 } | 378 } |
361 | 379 |
362 } // namespace WebCore | 380 } // namespace WebCore |
OLD | NEW |