Reviewers: dcarney, Michael Starzinger,

Description:
Don't use Persistent in runtime

[email protected],[email protected]
BUG=none

Please review this at https://codereview.chromium.org/22432009/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files:
  M src/runtime.cc


Index: src/runtime.cc
diff --git a/src/runtime.cc b/src/runtime.cc
index 56aa19ef0eec91a3b94a4c4e2691a4cd3baca6e4..d6c381155118d72a315e0118d6a7b7abe7d2d5ac 100644
--- a/src/runtime.cc
+++ b/src/runtime.cc
@@ -13615,11 +13615,10 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_CreateDateTimeFormat) {
           isolate->factory()->NewStringFromAscii(CStrVector("valid")),
           NONE));

-  Persistent<v8::Object> wrapper(reinterpret_cast<v8::Isolate*>(isolate),
-                                 v8::Utils::ToLocal(local_object));
// Make object handle weak so we can delete the data format once GC kicks in.
-  wrapper.MakeWeak<void>(NULL, &DateFormat::DeleteDateFormat);
-  wrapper.ClearAndLeak();
+ GlobalHandles::MakeWeak(*isolate->global_handles()->Create(*local_object),
+                          NULL,
+                          &DateFormat::DeleteDateFormat);
   return *local_object;
 }

@@ -13718,12 +13717,9 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_CreateNumberFormat) {
           isolate->factory()->NewStringFromAscii(CStrVector("valid")),
           NONE));

-  Persistent<v8::Object> wrapper(reinterpret_cast<v8::Isolate*>(isolate),
-                                 v8::Utils::ToLocal(local_object));
- // Make object handle weak so we can delete the number format once GC kicks
-  // in.
-  wrapper.MakeWeak<void>(NULL, &NumberFormat::DeleteNumberFormat);
-  wrapper.ClearAndLeak();
+ GlobalHandles::MakeWeak(*isolate->global_handles()->Create(*local_object),
+                          NULL,
+                          &DateFormat::DeleteNumberFormat);
   return *local_object;
 }

@@ -13831,11 +13827,9 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_CreateCollator) {
           isolate->factory()->NewStringFromAscii(CStrVector("valid")),
           NONE));

-  Persistent<v8::Object> wrapper(reinterpret_cast<v8::Isolate*>(isolate),
-                                 v8::Utils::ToLocal(local_object));
- // Make object handle weak so we can delete the collator once GC kicks in.
-  wrapper.MakeWeak<void>(NULL, &Collator::DeleteCollator);
-  wrapper.ClearAndLeak();
+ GlobalHandles::MakeWeak(*isolate->global_handles()->Create(*local_object),
+                          NULL,
+                          &DateFormat::DeleteCollator);
   return *local_object;
 }



--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to