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

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: