[gjs: 1/3] function: Don't always js::DumpStack() in blocked callbacks



commit abc29ac58488a64fc23c3318dbaaf16fbdbeb3a8
Author: Philip Chimento <philip chimento gmail com>
Date:   Fri Nov 1 23:17:46 2019 -0700

    function: Don't always js::DumpStack() in blocked callbacks
    
    Apparently js::DumpStack() doesn't work in a non-main thread. I thought
    for sure when I added it in commit 6f26113a that it did, but maybe that
    was in an old version of SpiderMonkey.
    
    Closes: #287

 gi/function.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
---
diff --git a/gi/function.cpp b/gi/function.cpp
index 2492556b..bec2f9ed 100644
--- a/gi/function.cpp
+++ b/gi/function.cpp
@@ -178,7 +178,6 @@ warn_about_illegal_js_callback(const GjsCallbackTrampoline *trampoline,
         g_critical("The offending callback was %s()%s.", name,
                    trampoline->is_vfunc ? ", a vfunc" : "");
     }
-    gjs_dumpstack();
     return;
 }
 
@@ -207,6 +206,7 @@ static void gjs_callback_closure(ffi_cif* cif G_GNUC_UNUSED, void* result,
         warn_about_illegal_js_callback(trampoline, "during shutdown",
             "destroying a Clutter actor or GTK widget with ::destroy signal "
             "connected, or using the destroy(), dispose(), or remove() vfuncs");
+        gjs_dumpstack();
         gjs_callback_trampoline_unref(trampoline);
         return;
     }
@@ -217,6 +217,7 @@ static void gjs_callback_closure(ffi_cif* cif G_GNUC_UNUSED, void* result,
         warn_about_illegal_js_callback(trampoline, "during garbage collection",
             "destroying a Clutter actor or GTK widget with ::destroy signal "
             "connected, or using the destroy(), dispose(), or remove() vfuncs");
+        gjs_dumpstack();
         gjs_callback_trampoline_unref(trampoline);
         return;
     }


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