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

Unified Diff: trunk/src/chrome/renderer/extensions/scoped_persistent.h

Issue 23724028: Revert 222102 "Remove unsafe access hacks from ScopedPersistent." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years, 3 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: 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) {

Powered by Google App Engine
This is Rietveld 408576698