Index: trunk/src/chrome/renderer/extensions/scoped_persistent.h |
=================================================================== |
--- trunk/src/chrome/renderer/extensions/scoped_persistent.h (revision 222150) |
+++ trunk/src/chrome/renderer/extensions/scoped_persistent.h (working copy) |
@@ -40,22 +40,23 @@ |
handle_.Clear(); |
} |
- bool IsEmpty() const { |
- return handle_.IsEmpty(); |
+ v8::Handle<T> operator->() const { |
+ return get(); |
} |
+ // TODO(dcarney): Remove this function |
+ // This is an unsafe access to the underlying handle |
+ v8::Handle<T> get() const { |
+ return *reinterpret_cast<v8::Handle<T>*>( |
+ const_cast<v8::Persistent<T>* >(&handle_)); |
+ } |
+ |
v8::Handle<T> NewHandle() const { |
if (handle_.IsEmpty()) |
return v8::Local<T>(); |
return v8::Local<T>::New(GetIsolate(handle_), handle_); |
} |
- v8::Handle<T> NewHandle(v8::Isolate* isolate) const { |
- if (handle_.IsEmpty()) |
- return v8::Local<T>(); |
- return v8::Local<T>::New(isolate, handle_); |
- } |
- |
template<typename P> |
void MakeWeak(P* parameters, |
typename v8::WeakReferenceCallbacks<T, P>::Revivable callback) { |