Bug#694452: unblock: gjs/1.32.0-3
Control: tags -1 moreinfo
On 2012-11-26 15:31, Josselin Mouette wrote:
> Package: release.debian.org
> Severity: normal
> User: release.debian.org@packages.debian.org
> Usertags: unblock
>
> Please unblock package gjs for an API extension that is necessary for a
> RC bugfix in gnome-documents.
>
> gjs (1.32.0-3) unstable; urgency=low
>
> * 02_gerror_class.patch, 03_gerror_details.patch: patches from
> upstream git. Introduce a class to manage GError correctly.
> Closes: #691551.
> * Bump shblibs version since this extends the API.
>
> Please require 15 days before testing migration since there is a small
> but existing possiblity of impact on gnome-shell and gnome-sushi.
>
> unblock gjs/1.32.0-3
>
> Thanks,
Hi,
I do have a concern or two about the actual diff (see gjs-diff.review,
attached to avoid line-mangling).
~Niels
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ gjs-1.32.0/gi/gerror.c 2012-11-26 10:59:33.538183526 +0100
+@@ -0,0 +1,589 @@
++/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
++/*
++ * Copyright (c) 2008 litl, LLC
^^^^
Copy-waste? Similar coment for the .h file (in case it is)
I am a bit concerned about:
"""
+--- a/gjs/context.h
++++ b/gjs/context.h
+@@ -68,7 +68,11 @@ gboolean gjs_context_define_string_array (GjsContext *js_context,
+ GList* gjs_context_get_all (void);
+ void* gjs_context_get_native_context (GjsContext *js_context);
+
++/* initial_frame is a JSStackFrame, but cannot be exposed as such in the
++ public API. Pass NULL to get the topmost frame.
^^^^
++*/
+ void gjs_context_print_stack_to_buffer (GjsContext *js_context,
++ void *initial_frame,
+ GString *buf);
"""
combined with
"""
+ void
+-gjs_context_print_stack_to_buffer(GjsContext* context, GString *buf)
++gjs_context_print_stack_to_buffer(GjsContext* context, void *initial, GString *buf)
+ {
+ JSContext *js_context = (JSContext*)gjs_context_get_native_context(context);
+- JSStackFrame* fp;
+- JSStackFrame* iter = NULL;
++ JSStackFrame* fp = initial;
^^^^^^^^^^^^
+ int num = 0;
+
+- g_string_append_printf(buf, "== Stack trace for context %p ==\n", context);
+- while ((fp = JS_FrameIterator(js_context, &iter)) != NULL) {
++ while (fp) {
^^
+ format_frame(js_context, fp, buf, num);
+ num++;
+- }
+
+- if(!num)
+- g_string_append_printf(buf, "(JavaScript stack is empty)\n");
+- g_string_append(buf, "\n");
++ JS_FrameIterator(js_context, &fp);
++ }
+ }
"""
Seems to me that gjs_context_print_stack_to_buffer is (more or less) a
NO-OP if intial is NULL. (/me read "topmost" as the
"deepest/innermost" frame, so I was expecting it to dump the "entire"
stack. If "topmost" has a different meaning here or I missed
something in the diff, please do correct me)
Reply to: