[gjs/wip/ptomato/mozjs52: 28/38] js: Add JSCLASS_FOREGROUND_FINALIZE flag



commit f9117d495ccb47f5515e49468f43cb94b86ae491
Author: Philip Chimento <philip chimento gmail com>
Date:   Mon May 1 22:49:24 2017 -0700

    js: Add JSCLASS_FOREGROUND_FINALIZE flag
    
    For all classes with a finalize hook, SpiderMonkey 52 requires that they
    either have JSCLASS_FOREGROUND_FINALIZE or JSCLASS_BACKGROUND_FINALIZE set.
    Previously, only the BACKGROUND flag existed and FOREGROUND was implicit.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=784196

 gi/boxed.cpp              |    3 ++-
 gi/fundamental.cpp        |    2 +-
 gi/gtype.cpp              |    3 ++-
 gi/ns.cpp                 |    2 +-
 gi/object.cpp             |    2 +-
 gi/repo.cpp               |    2 +-
 gi/union.cpp              |    2 +-
 gjs/importer.cpp          |    2 +-
 test/gjs-test-rooting.cpp |    2 +-
 9 files changed, 11 insertions(+), 9 deletions(-)
---
diff --git a/gi/boxed.cpp b/gi/boxed.cpp
index fefcfb8..e7cd79d 100644
--- a/gi/boxed.cpp
+++ b/gi/boxed.cpp
@@ -936,7 +936,8 @@ static const struct JSClassOps gjs_boxed_class_ops = {
  */
 struct JSClass gjs_boxed_class = {
     "GObject_Boxed",
-    JSCLASS_HAS_PRIVATE | JSCLASS_HAS_RESERVED_SLOTS(1),
+    JSCLASS_HAS_PRIVATE | JSCLASS_FOREGROUND_FINALIZE |
+        JSCLASS_HAS_RESERVED_SLOTS(1),
     &gjs_boxed_class_ops
 };
 
diff --git a/gi/fundamental.cpp b/gi/fundamental.cpp
index ce30075..ca2a422 100644
--- a/gi/fundamental.cpp
+++ b/gi/fundamental.cpp
@@ -561,7 +561,7 @@ static const struct JSClassOps gjs_fundamental_class_ops = {
 
 struct JSClass gjs_fundamental_instance_class = {
     "GFundamental_Object",
-    JSCLASS_HAS_PRIVATE,
+    JSCLASS_HAS_PRIVATE | JSCLASS_FOREGROUND_FINALIZE,
     &gjs_fundamental_class_ops
 };
 
diff --git a/gi/gtype.cpp b/gi/gtype.cpp
index 3b832da..fe365fe 100644
--- a/gi/gtype.cpp
+++ b/gi/gtype.cpp
@@ -39,7 +39,8 @@ static JSObject *gjs_gtype_get_proto(JSContext *) G_GNUC_UNUSED;
 static bool gjs_gtype_define_proto(JSContext *, JS::HandleObject,
                                    JS::MutableHandleObject);
 
-GJS_DEFINE_PROTO_ABSTRACT("GIRepositoryGType", gtype, 0);
+GJS_DEFINE_PROTO_ABSTRACT("GIRepositoryGType", gtype,
+                          JSCLASS_FOREGROUND_FINALIZE);
 
 /* priv_from_js adds a "*", so this returns "void *" */
 GJS_DEFINE_PRIV_FROM_JS(void, gjs_gtype_class);
diff --git a/gi/ns.cpp b/gi/ns.cpp
index d4ece58..376cc20 100644
--- a/gi/ns.cpp
+++ b/gi/ns.cpp
@@ -164,7 +164,7 @@ static const struct JSClassOps gjs_ns_class_ops = {
 
 struct JSClass gjs_ns_class = {
     "GIRepositoryNamespace",
-    JSCLASS_HAS_PRIVATE,
+    JSCLASS_HAS_PRIVATE | JSCLASS_FOREGROUND_FINALIZE,
     &gjs_ns_class_ops
 };
 
diff --git a/gi/object.cpp b/gi/object.cpp
index 5e518e2..c1a4143 100644
--- a/gi/object.cpp
+++ b/gi/object.cpp
@@ -1810,7 +1810,7 @@ static const struct JSClassOps gjs_object_class_ops = {
 
 struct JSClass gjs_object_instance_class = {
     "GObject_Object",
-    JSCLASS_HAS_PRIVATE,
+    JSCLASS_HAS_PRIVATE | JSCLASS_FOREGROUND_FINALIZE,
     &gjs_object_class_ops
 };
 
diff --git a/gi/repo.cpp b/gi/repo.cpp
index c246af9..1836b58 100644
--- a/gi/repo.cpp
+++ b/gi/repo.cpp
@@ -229,7 +229,7 @@ static const struct JSClassOps gjs_repo_class_ops = {
 
 struct JSClass gjs_repo_class = {
     "GIRepository", /* means "new GIRepository()" works */
-    JSCLASS_HAS_PRIVATE,
+    JSCLASS_HAS_PRIVATE | JSCLASS_FOREGROUND_FINALIZE,
     &gjs_repo_class_ops,
 };
 
diff --git a/gi/union.cpp b/gi/union.cpp
index 85391ad..dad723c 100644
--- a/gi/union.cpp
+++ b/gi/union.cpp
@@ -300,7 +300,7 @@ static const struct JSClassOps gjs_union_class_ops = {
 
 struct JSClass gjs_union_class = {
     "GObject_Union",
-    JSCLASS_HAS_PRIVATE,
+    JSCLASS_HAS_PRIVATE | JSCLASS_FOREGROUND_FINALIZE,
     &gjs_union_class_ops
 };
 
diff --git a/gjs/importer.cpp b/gjs/importer.cpp
index 0b92331..599f973 100644
--- a/gjs/importer.cpp
+++ b/gjs/importer.cpp
@@ -857,7 +857,7 @@ static const js::ObjectOps gjs_importer_object_ops = {
 
 const js::Class gjs_importer_real_class = {
     "GjsFileImporter",
-    JSCLASS_HAS_PRIVATE,
+    JSCLASS_HAS_PRIVATE | JSCLASS_FOREGROUND_FINALIZE,
     &gjs_importer_class_ops,
     nullptr,
     nullptr,
diff --git a/test/gjs-test-rooting.cpp b/test/gjs-test-rooting.cpp
index 7ab5f4a..3c90077 100644
--- a/test/gjs-test-rooting.cpp
+++ b/test/gjs-test-rooting.cpp
@@ -39,7 +39,7 @@ static const JSClassOps test_obj_class_ops = {
 
 static JSClass test_obj_class = {
     "TestObj",
-    JSCLASS_HAS_PRIVATE,
+    JSCLASS_HAS_PRIVATE | JSCLASS_FOREGROUND_FINALIZE,
     &test_obj_class_ops
 };
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]