There's a problem with the recent leave-guile-mode patch. Basically,
sometimes we want to leave guile mode, and sometimes we don't.

Examples of times when we want to leave guile mode would be:

  g_main_loop_run ()

  gst_bus_poll()

  *any function* that can potentially cause a callback to come in from
  another thread, because guile needs to grab some kind of shared lock
  when adding a thread

Examples when you don't want to leave guile mode:

  functions that deal in SCM

  functions that call libguile code

So we have to choose a default. I propose that by default we stay in
guile mode, like we had before. Users that want threads have to deal
with the pain of manually telling g-wrap to leave guile-mode for the
functions.

I will set up guile-gnome to leave guile mode by default, with the
possibility of some kwarg to stay in.

So, how to implement this? The problem is that gw_wrapset_add_function
is generic, for all languages. The same with wrap-function!. The
<gw-function> and GWFunctionInfo both need to know whether or not to
leave guile-mode. Since a runtime seems like a normal thing for a
language to have, I propose including this bit in core g-wrap.

Concretely I propose adding a "flags" member tothe GWFunctionInfo and
<gw-function> data structures and a "flags" argument to the
wrap-function! and gw_wrapset_add_function procedures.

The attached bundle implements this behavior.

Thanks,

Andy.
# Bazaar revision bundle v0.8
#
# message:
#   merge from rotty
# committer: Andy Wingo <[EMAIL PROTECTED]>
# date: Thu 2007-01-04 22:43:09.391000032 +0100

=== modified file ChangeLog
--- ChangeLog
+++ ChangeLog
@@ -1,3 +1,33 @@
+2007-01-04  Andy Wingo  <[EMAIL PROTECTED]>
+
+       Add a flag to GWFunctionInfo to control whether or not we leave
+       guile/the language when calling functions.
+       
+       * guile/g-wrap/guile-runtime.c (do_ffi_call): Renamed from
+       ffi_call_without_guile. 
+       (dynproc_smob_apply): Only leave guile if the LEAVE_RUNTIME
+       function flag is set.
+
+       * guile/examples/Makefile.am (CLEANFILES): Fix the clean target.
+
+       * guile/g-wrap/guile.scm (initializations-cg): 
+       * g-wrap/rti.scm (add-function-rti-cg): Write the flags arg into
+       the generated C.
+
+       * g-wrap/core-runtime.h (GWFunctionFlag): New data type.
+       (GW_FUNCTION_FLAG_LEAVE_RUNTIME, GW_FUNCTION_FLAGS_USER_SHIFT):
+       A flag supported by G-Wrap, and some padding so that users can
+       have flags too.
+       (struct _GWFunctionInfo): Add flags member.
+
+       * g-wrap/core-runtime.c (gw_wrapset_add_function): Add flags arg.
+
+       * g-wrap.scm (<gw-function>): Add flags slot.
+       (flags) New exported public accessor of flags. Flags is a string
+       that should evaluate to an unsigned int in C, and normally should
+       use the constants in core-runtime.h.
+       (wrap-function!): Accept a flags kwarg, defaults to "0".
+
 2007-01-02  Andreas Rottmann  <[EMAIL PROTECTED]>
 
        * configure.ac, Makefile.am (DIST_SUBDIRS): Always include libffi

=== modified file g-wrap.scm // last-changed:[EMAIL PROTECTED]
... 94607f764dd63
--- g-wrap.scm
+++ g-wrap.scm
@@ -57,6 +57,7 @@
    input-arguments output-arguments optional-arguments
    return-type return-typespec
    generic-name 
+   flags
    
    <gw-type>
    needs-result-var?
@@ -406,7 +407,8 @@
   (arguments #:getter arguments #:init-keyword #:arguments)
   (generic-name #:getter generic-name
                 #:init-keyword #:generic-name
-                #:init-value #f))
+                #:init-value #f)
+  (flags #:getter flags #:init-keyword #:flags))
 
 (define-method (write (self <gw-function>) port)
   (display "#<gw-function " port)
@@ -728,7 +730,7 @@
 (define-method (wrap-function! (wrapset <gw-wrapset>) . args)
   ;;(format #t "wrapping ~S\n" args)
   (let-keywords
-   args #f (name returns c-name arguments description generic-name)
+   args #f (name returns c-name arguments description generic-name flags)
    (guard
     (c
      (#t (raise-stacked c "while processing function `~S'" name)
@@ -742,7 +744,8 @@
                #:c-name c-name
                #:arguments (resolve-arguments wrapset arguments)
                #:description description
-               #:generic-name generic-name)))))
+               #:generic-name generic-name
+               #:flags (or flags "0"))))))
 
 (define-method (wrap-constant! (wrapset <gw-wrapset>) . args)
   (let-keywords

=== modified file g-wrap/core-runtime.c // last-changed:[EMAIL PROTECTED]
... 4214109-1f994607f764dd63
--- g-wrap/core-runtime.c
+++ g-wrap/core-runtime.c
@@ -240,7 +240,8 @@
                          const char **arg_types,
                          GWTypeSpec *arg_typespecs,
                          const char *proc_name,
-                         const char *generic_name)
+                         const char *generic_name,
+                         GWFunctionFlags flags)
 {
   GWFunctionInfo *fi;
   ffi_type **arg_ffi = NULL;
@@ -264,6 +265,7 @@
   fi->generic_name = generic_name;
   fi->arg_types = NULL;
   fi->ret_type = NULL;
+  fi->flags = flags;
   
   /* FIXME: FFI should be able to handle optional args */
   assert (!arg_types || !n_optional_args);

=== modified file g-wrap/core-runtime.h // last-changed:[EMAIL PROTECTED]
... 4214109-1f994607f764dd63
--- g-wrap/core-runtime.h
+++ g-wrap/core-runtime.h
@@ -105,6 +105,15 @@
 
 #define GW_TYPESPEC_USER_SHIFT 8
 
+typedef unsigned int GWFunctionFlags;
+
+enum
+{
+  GW_FUNCTION_FLAG_LEAVE_RUNTIME  = 0x01
+};
+
+#define GW_FUNCTION_FLAGS_USER_SHIFT 16
+
 typedef void (*GWUnWrapValueFunc)(void *instance,
                                   GWLangArena arena,
                                   const GWTypeSpec *ts,
@@ -151,6 +160,8 @@
 
     ffi_cif cif;
     unsigned int data_area_size; /* Size needed for the dynamic-call info */
+
+    GWFunctionFlags flags;
 };
 
 struct _GWWrapSet
@@ -196,7 +207,8 @@
                                     const char **arg_types,
                                     GWTypeSpec *arg_typespecs,
                                     const char *proc_name,
-                                    const char *generic_name);
+                                    const char *generic_name,
+                                    GWFunctionFlags flags);
 
 void      gw_wrapset_register (GWWrapSet *ws);
 

=== modified file g-wrap/rti.scm // last-changed:[EMAIL PROTECTED]
... -1f994607f764dd63
--- g-wrap/rti.scm
+++ g-wrap/rti.scm
@@ -244,6 +244,7 @@
      (if (generic-name function)
         (list "\"" (symbol->string (generic-name function)) "\"")
         "NULL")
+     ", " (flags function)
      ");\n"
      "}\n")))
 

=== modified file guile/examples/Makefile.am // last-changed:[EMAIL PROTECTED]
... 070104214109-1f994607f764dd63
--- guile/examples/Makefile.am
+++ guile/examples/Makefile.am
@@ -13,6 +13,8 @@
 
 EXTRA_DIST= README update-format.scm
 
+CLEANFILES = $(wildcard gw-*)
+
 # Wrapset generation
 gw-%.c gw-%.scm: %-spec.scm
        LD_LIBRARY_PATH=${LOCALPWD}/..:${LD_LIBRARY_PATH} \

=== modified file guile/g-wrap/guile-runtime.c // last-changed:[EMAIL PROTECTED]
... 20070104214109-1f994607f764dd63
--- guile/g-wrap/guile-runtime.c
+++ guile/g-wrap/guile-runtime.c
@@ -578,7 +578,7 @@
 typedef void* (*guile_without_func)(void*);
 
 static void*
-ffi_call_without_guile (const ffi_guile_call_info *info)
+do_ffi_call (const ffi_guile_call_info *info)
 {
   ffi_call (&info->fi->cif, info->fi->proc, info->rvalue, info->values);
   return NULL;
@@ -632,7 +632,11 @@
       }
   }
   
-  scm_without_guile ((guile_without_func)ffi_call_without_guile, &call_info);
+  if (fi->flags & GW_FUNCTION_FLAG_LEAVE_RUNTIME)
+      scm_without_guile ((guile_without_func)do_ffi_call,
+                         &call_info);
+  else
+      do_ffi_call (&call_info);
 
   rvalue = GW_RVALUE_PTR (rvalue, fi->ret_type);
   fi->ret_type->wrap_value (&result, ARENA, &fi->ret_typespec, rvalue, &error);

=== modified file guile/g-wrap/guile.scm // last-changed:[EMAIL PROTECTED]
... 04214109-1f994607f764dd63
--- guile/g-wrap/guile.scm
+++ guile/g-wrap/guile.scm
@@ -511,7 +511,8 @@
                                                  (map default-value 
visible-args))))
         (n-req-args (- n-visible-args n-optional-visible-args))
         (fn-c-wrapper (slot-ref function 'wrapper-name))
-        (fn-c-string  (slot-ref function 'wrapper-namestr)))
+        (fn-c-string  (slot-ref function 'wrapper-namestr))
+        (flags-c-string (flags function)))
     (list
      "   gw_wrapset_add_function(" (c-info-sym wrapset) ", "
      fn-c-wrapper ", " n-req-args ", " n-optional-visible-args ", "
@@ -519,6 +520,7 @@
      (if (generic-name function)
         (list "\"" (symbol->string (generic-name function)) "\"")
         "NULL")
+     ", " flags-c-string
      ");\n")))
 
 

# revision id: [EMAIL PROTECTED]
# sha1: 28f7a6cf1cd19940af82e945d14f60eb7e269bf0
# inventory sha1: 53fc8d089558dceaac0b71f56451cce229fdb4cf
# parent ids:
#   [EMAIL PROTECTED]
#   [EMAIL PROTECTED]
# base id: [EMAIL PROTECTED]
# properties:
#   branch-nick: mainline

# message:
#   2007-01-04  Andy Wingo  <[EMAIL PROTECTED]>
#   
#       Add a flag to GWFunctionInfo to control whether or not we leave
#       guile/the language when calling functions.
#       
#       * guile/g-wrap/guile-runtime.c (do_ffi_call): Renamed from
#       ffi_call_without_guile. 
#       (dynproc_smob_apply): Only leave guile if the LEAVE_RUNTIME
#       function flag is set.
#   
#       * guile/examples/Makefile.am (CLEANFILES): Fix the clean target.
#   
#       * guile/g-wrap/guile.scm (initializations-cg): 
#       * g-wrap/rti.scm (add-function-rti-cg): Write the flags arg into
#       the generated C.
#   
#       * g-wrap/core-runtime.h (GWFunctionFlag): New data type.
#       (GW_FUNCTION_FLAG_LEAVE_RUNTIME, GW_FUNCTION_FLAGS_USER_SHIFT):
#       A flag supported by G-Wrap, and some padding so that users can
#       have flags too.
#       (struct _GWFunctionInfo): Add flags member.
#   
#       * g-wrap/core-runtime.c (gw_wrapset_add_function): Add flags arg.
#   
#       * g-wrap.scm (<gw-function>): Add flags slot.
#       (flags) New exported public accessor of flags. Flags is a string
#       that should evaluate to an unsigned int in C, and normally should
#       use the constants in core-runtime.h.
#       (wrap-function!): Accept a flags kwarg, defaults to "0".
#   
# committer: Andy Wingo <[EMAIL PROTECTED]>
# date: Thu 2007-01-04 22:41:09.979000092 +0100

=== modified file ChangeLog // encoding:base64
LS0tIENoYW5nZUxvZworKysgQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMDctMDEtMDQg
IEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CisKKwlBZGQgYSBmbGFnIHRvIEdXRnVuY3Rp
b25JbmZvIHRvIGNvbnRyb2wgd2hldGhlciBvciBub3Qgd2UgbGVhdmUKKwlndWlsZS90aGUgbGFu
Z3VhZ2Ugd2hlbiBjYWxsaW5nIGZ1bmN0aW9ucy4KKwkKKwkqIGd1aWxlL2ctd3JhcC9ndWlsZS1y
dW50aW1lLmMgKGRvX2ZmaV9jYWxsKTogUmVuYW1lZCBmcm9tCisJZmZpX2NhbGxfd2l0aG91dF9n
dWlsZS4gCisJKGR5bnByb2Nfc21vYl9hcHBseSk6IE9ubHkgbGVhdmUgZ3VpbGUgaWYgdGhlIExF
QVZFX1JVTlRJTUUKKwlmdW5jdGlvbiBmbGFnIGlzIHNldC4KKworCSogZ3VpbGUvZXhhbXBsZXMv
TWFrZWZpbGUuYW0gKENMRUFORklMRVMpOiBGaXggdGhlIGNsZWFuIHRhcmdldC4KKworCSogZ3Vp
bGUvZy13cmFwL2d1aWxlLnNjbSAoaW5pdGlhbGl6YXRpb25zLWNnKTogCisJKiBnLXdyYXAvcnRp
LnNjbSAoYWRkLWZ1bmN0aW9uLXJ0aS1jZyk6IFdyaXRlIHRoZSBmbGFncyBhcmcgaW50bworCXRo
ZSBnZW5lcmF0ZWQgQy4KKworCSogZy13cmFwL2NvcmUtcnVudGltZS5oIChHV0Z1bmN0aW9uRmxh
Zyk6IE5ldyBkYXRhIHR5cGUuCisJKEdXX0ZVTkNUSU9OX0ZMQUdfTEVBVkVfUlVOVElNRSwgR1df
RlVOQ1RJT05fRkxBR1NfVVNFUl9TSElGVCk6CisJQSBmbGFnIHN1cHBvcnRlZCBieSBHLVdyYXAs
IGFuZCBzb21lIHBhZGRpbmcgc28gdGhhdCB1c2VycyBjYW4KKwloYXZlIGZsYWdzIHRvby4KKwko
c3RydWN0IF9HV0Z1bmN0aW9uSW5mbyk6IEFkZCBmbGFncyBtZW1iZXIuCisKKwkqIGctd3JhcC9j
b3JlLXJ1bnRpbWUuYyAoZ3dfd3JhcHNldF9hZGRfZnVuY3Rpb24pOiBBZGQgZmxhZ3MgYXJnLgor
CisJKiBnLXdyYXAuc2NtICg8Z3ctZnVuY3Rpb24+KTogQWRkIGZsYWdzIHNsb3QuCisJKGZsYWdz
KSBOZXcgZXhwb3J0ZWQgcHVibGljIGFjY2Vzc29yIG9mIGZsYWdzLiBGbGFncyBpcyBhIHN0cmlu
ZworCXRoYXQgc2hvdWxkIGV2YWx1YXRlIHRvIGFuIHVuc2lnbmVkIGludCBpbiBDLCBhbmQgbm9y
bWFsbHkgc2hvdWxkCisJdXNlIHRoZSBjb25zdGFudHMgaW4gY29yZS1ydW50aW1lLmguCisJKHdy
YXAtZnVuY3Rpb24hKTogQWNjZXB0IGEgZmxhZ3Mga3dhcmcsIGRlZmF1bHRzIHRvICIwIi4KKwog
MjAwNi0xMi0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KIAogCSogZ3VpbGUvZy13
cmFwL2d1aWxlLWNvbXBhdGliaWxpdHkuYyAoc2NtX3dpdGhvdXRfZ3VpbGUpOiAKCg==

=== modified file g-wrap.scm // encoding:base64
LS0tIGctd3JhcC5zY20KKysrIGctd3JhcC5zY20KQEAgLTU3LDYgKzU3LDcgQEAKICAgIGlucHV0
LWFyZ3VtZW50cyBvdXRwdXQtYXJndW1lbnRzIG9wdGlvbmFsLWFyZ3VtZW50cwogICAgcmV0dXJu
LXR5cGUgcmV0dXJuLXR5cGVzcGVjCiAgICBnZW5lcmljLW5hbWUgCisgICBmbGFncwogICAgCiAg
ICA8Z3ctdHlwZT4KICAgIG5lZWRzLXJlc3VsdC12YXI/CkBAIC00MDYsNyArNDA3LDggQEAKICAg
KGFyZ3VtZW50cyAjOmdldHRlciBhcmd1bWVudHMgIzppbml0LWtleXdvcmQgIzphcmd1bWVudHMp
CiAgIChnZW5lcmljLW5hbWUgIzpnZXR0ZXIgZ2VuZXJpYy1uYW1lCiAgICAgICAgICAgICAgICAg
Izppbml0LWtleXdvcmQgIzpnZW5lcmljLW5hbWUKLSAgICAgICAgICAgICAgICAjOmluaXQtdmFs
dWUgI2YpKQorICAgICAgICAgICAgICAgICM6aW5pdC12YWx1ZSAjZikKKyAgKGZsYWdzICM6Z2V0
dGVyIGZsYWdzICM6aW5pdC1rZXl3b3JkICM6ZmxhZ3MpKQogCiAoZGVmaW5lLW1ldGhvZCAod3Jp
dGUgKHNlbGYgPGd3LWZ1bmN0aW9uPikgcG9ydCkKICAgKGRpc3BsYXkgIiM8Z3ctZnVuY3Rpb24g
IiBwb3J0KQpAQCAtNzI4LDcgKzczMCw3IEBACiAoZGVmaW5lLW1ldGhvZCAod3JhcC1mdW5jdGlv
biEgKHdyYXBzZXQgPGd3LXdyYXBzZXQ+KSAuIGFyZ3MpCiAgIDs7KGZvcm1hdCAjdCAid3JhcHBp
bmcgflNcbiIgYXJncykKICAgKGxldC1rZXl3b3JkcwotICAgYXJncyAjZiAobmFtZSByZXR1cm5z
IGMtbmFtZSBhcmd1bWVudHMgZGVzY3JpcHRpb24gZ2VuZXJpYy1uYW1lKQorICAgYXJncyAjZiAo
bmFtZSByZXR1cm5zIGMtbmFtZSBhcmd1bWVudHMgZGVzY3JpcHRpb24gZ2VuZXJpYy1uYW1lIGZs
YWdzKQogICAgKGd1YXJkCiAgICAgKGMKICAgICAgKCN0IChyYWlzZS1zdGFja2VkIGMgIndoaWxl
IHByb2Nlc3NpbmcgZnVuY3Rpb24gYH5TJyIgbmFtZSkKQEAgLTc0Miw3ICs3NDQsOCBAQAogICAg
ICAgICAgICAgICAgIzpjLW5hbWUgYy1uYW1lCiAgICAgICAgICAgICAgICAjOmFyZ3VtZW50cyAo
cmVzb2x2ZS1hcmd1bWVudHMgd3JhcHNldCBhcmd1bWVudHMpCiAgICAgICAgICAgICAgICAjOmRl
c2NyaXB0aW9uIGRlc2NyaXB0aW9uCi0gICAgICAgICAgICAgICAjOmdlbmVyaWMtbmFtZSBnZW5l
cmljLW5hbWUpKSkpKQorICAgICAgICAgICAgICAgIzpnZW5lcmljLW5hbWUgZ2VuZXJpYy1uYW1l
CisgICAgICAgICAgICAgICAjOmZsYWdzIChvciBmbGFncyAiMCIpKSkpKSkKIAogKGRlZmluZS1t
ZXRob2QgKHdyYXAtY29uc3RhbnQhICh3cmFwc2V0IDxndy13cmFwc2V0PikgLiBhcmdzKQogICAo
bGV0LWtleXdvcmRzCgo=

=== modified file g-wrap/core-runtime.c // encoding:base64
LS0tIGctd3JhcC9jb3JlLXJ1bnRpbWUuYworKysgZy13cmFwL2NvcmUtcnVudGltZS5jCkBAIC0y
NDAsNyArMjQwLDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICoqYXJn
X3R5cGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgIEdXVHlwZVNwZWMgKmFyZ190eXBlc3Bl
Y3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcHJvY19uYW1lLAotICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmdlbmVyaWNfbmFtZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpnZW5lcmljX25hbWUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgR1dGdW5jdGlvbkZsYWdzIGZsYWdzKQogewogICBHV0Z1bmN0aW9uSW5mbyAq
Zmk7CiAgIGZmaV90eXBlICoqYXJnX2ZmaSA9IE5VTEw7CkBAIC0yNjQsNiArMjY1LDcgQEAKICAg
ZmktPmdlbmVyaWNfbmFtZSA9IGdlbmVyaWNfbmFtZTsKICAgZmktPmFyZ190eXBlcyA9IE5VTEw7
CiAgIGZpLT5yZXRfdHlwZSA9IE5VTEw7CisgIGZpLT5mbGFncyA9IGZsYWdzOwogICAKICAgLyog
RklYTUU6IEZGSSBzaG91bGQgYmUgYWJsZSB0byBoYW5kbGUgb3B0aW9uYWwgYXJncyAqLwogICBh
c3NlcnQgKCFhcmdfdHlwZXMgfHwgIW5fb3B0aW9uYWxfYXJncyk7Cgo=

=== modified file g-wrap/core-runtime.h // encoding:base64
LS0tIGctd3JhcC9jb3JlLXJ1bnRpbWUuaAorKysgZy13cmFwL2NvcmUtcnVudGltZS5oCkBAIC0x
MDUsNiArMTA1LDE1IEBACiAKICNkZWZpbmUgR1dfVFlQRVNQRUNfVVNFUl9TSElGVCA4CiAKK3R5
cGVkZWYgdW5zaWduZWQgaW50IEdXRnVuY3Rpb25GbGFnczsKKworZW51bQoreworICBHV19GVU5D
VElPTl9GTEFHX0xFQVZFX1JVTlRJTUUgID0gMHgwMQorfTsKKworI2RlZmluZSBHV19GVU5DVElP
Tl9GTEFHU19VU0VSX1NISUZUIDE2CisKIHR5cGVkZWYgdm9pZCAoKkdXVW5XcmFwVmFsdWVGdW5j
KSh2b2lkICppbnN0YW5jZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHV0xh
bmdBcmVuYSBhcmVuYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBH
V1R5cGVTcGVjICp0cywKQEAgLTE1MSw2ICsxNjAsOCBAQAogCiAgICAgZmZpX2NpZiBjaWY7CiAg
ICAgdW5zaWduZWQgaW50IGRhdGFfYXJlYV9zaXplOyAvKiBTaXplIG5lZWRlZCBmb3IgdGhlIGR5
bmFtaWMtY2FsbCBpbmZvICovCisKKyAgICBHV0Z1bmN0aW9uRmxhZ3MgZmxhZ3M7CiB9OwogCiBz
dHJ1Y3QgX0dXV3JhcFNldApAQCAtMTk2LDcgKzIwNyw4IEBACiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICoqYXJnX3R5cGVzLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR1dUeXBlU3BlYyAqYXJnX3R5cGVzcGVjcywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnByb2NfbmFtZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmdlbmVyaWNfbmFtZSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpnZW5lcmlj
X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHV0Z1bmN0aW9uRmxh
Z3MgZmxhZ3MpOwogCiB2b2lkIAkgICBnd193cmFwc2V0X3JlZ2lzdGVyIChHV1dyYXBTZXQgKndz
KTsKIAoK

=== modified file g-wrap/rti.scm // encoding:base64
LS0tIGctd3JhcC9ydGkuc2NtCisrKyBnLXdyYXAvcnRpLnNjbQpAQCAtMjQ0LDYgKzI0NCw3IEBA
CiAgICAgIChpZiAoZ2VuZXJpYy1uYW1lIGZ1bmN0aW9uKQogCSAobGlzdCAiXCIiIChzeW1ib2wt
PnN0cmluZyAoZ2VuZXJpYy1uYW1lIGZ1bmN0aW9uKSkgIlwiIikKIAkgIk5VTEwiKQorICAgICAi
LCAiIChmbGFncyBmdW5jdGlvbikKICAgICAgIik7XG4iCiAgICAgICJ9XG4iKSkpCiAKCg==

=== modified file guile/examples/Makefile.am // encoding:base64
LS0tIGd1aWxlL2V4YW1wbGVzL01ha2VmaWxlLmFtCisrKyBndWlsZS9leGFtcGxlcy9NYWtlZmls
ZS5hbQpAQCAtMTMsNiArMTMsOCBAQAogCiBFWFRSQV9ESVNUPSBSRUFETUUgdXBkYXRlLWZvcm1h
dC5zY20KIAorQ0xFQU5GSUxFUyA9ICQod2lsZGNhcmQgZ3ctKikKKwogIyBXcmFwc2V0IGdlbmVy
YXRpb24KIGd3LSUuYyBndy0lLnNjbTogJS1zcGVjLnNjbQogCUxEX0xJQlJBUllfUEFUSD0ke0xP
Q0FMUFdEfS8uLjoke0xEX0xJQlJBUllfUEFUSH0gXAoK

=== modified file guile/g-wrap/guile-runtime.c // encoding:base64
LS0tIGd1aWxlL2ctd3JhcC9ndWlsZS1ydW50aW1lLmMKKysrIGd1aWxlL2ctd3JhcC9ndWlsZS1y
dW50aW1lLmMKQEAgLTU3OCw3ICs1NzgsNyBAQAogdHlwZWRlZiB2b2lkKiAoKmd1aWxlX3dpdGhv
dXRfZnVuYykodm9pZCopOwogCiBzdGF0aWMgdm9pZCoKLWZmaV9jYWxsX3dpdGhvdXRfZ3VpbGUg
KGNvbnN0IGZmaV9ndWlsZV9jYWxsX2luZm8gKmluZm8pCitkb19mZmlfY2FsbCAoY29uc3QgZmZp
X2d1aWxlX2NhbGxfaW5mbyAqaW5mbykKIHsKICAgZmZpX2NhbGwgKCZpbmZvLT5maS0+Y2lmLCBp
bmZvLT5maS0+cHJvYywgaW5mby0+cnZhbHVlLCBpbmZvLT52YWx1ZXMpOwogICByZXR1cm4gTlVM
TDsKQEAgLTYzMiw3ICs2MzIsMTEgQEAKICAgICAgIH0KICAgfQogICAKLSAgc2NtX3dpdGhvdXRf
Z3VpbGUgKChndWlsZV93aXRob3V0X2Z1bmMpZmZpX2NhbGxfd2l0aG91dF9ndWlsZSwgJmNhbGxf
aW5mbyk7CisgIGlmIChmaS0+ZmxhZ3MgJiBHV19GVU5DVElPTl9GTEFHX0xFQVZFX1JVTlRJTUUp
CisgICAgICBzY21fd2l0aG91dF9ndWlsZSAoKGd1aWxlX3dpdGhvdXRfZnVuYylkb19mZmlfY2Fs
bCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAmY2FsbF9pbmZvKTsKKyAgZWxzZQorICAgICAg
ZG9fZmZpX2NhbGwgKCZjYWxsX2luZm8pOwogCiAgIHJ2YWx1ZSA9IEdXX1JWQUxVRV9QVFIgKHJ2
YWx1ZSwgZmktPnJldF90eXBlKTsKICAgZmktPnJldF90eXBlLT53cmFwX3ZhbHVlICgmcmVzdWx0
LCBBUkVOQSwgJmZpLT5yZXRfdHlwZXNwZWMsIHJ2YWx1ZSwgJmVycm9yKTsKCg==

=== modified file guile/g-wrap/guile.scm // encoding:base64
LS0tIGd1aWxlL2ctd3JhcC9ndWlsZS5zY20KKysrIGd1aWxlL2ctd3JhcC9ndWlsZS5zY20KQEAg
LTUxMSw3ICs1MTEsOCBAQAogCQkJCQkJICAobWFwIGRlZmF1bHQtdmFsdWUgdmlzaWJsZS1hcmdz
KSkpKQogCSAobi1yZXEtYXJncyAoLSBuLXZpc2libGUtYXJncyBuLW9wdGlvbmFsLXZpc2libGUt
YXJncykpCiAJIChmbi1jLXdyYXBwZXIgKHNsb3QtcmVmIGZ1bmN0aW9uICd3cmFwcGVyLW5hbWUp
KQotCSAoZm4tYy1zdHJpbmcgIChzbG90LXJlZiBmdW5jdGlvbiAnd3JhcHBlci1uYW1lc3RyKSkp
CisJIChmbi1jLXN0cmluZyAgKHNsb3QtcmVmIGZ1bmN0aW9uICd3cmFwcGVyLW5hbWVzdHIpKQor
CSAoZmxhZ3MtYy1zdHJpbmcgKGZsYWdzIGZ1bmN0aW9uKSkpCiAgICAgKGxpc3QKICAgICAgIiAg
IGd3X3dyYXBzZXRfYWRkX2Z1bmN0aW9uKCIgKGMtaW5mby1zeW0gd3JhcHNldCkgIiwgIgogICAg
ICBmbi1jLXdyYXBwZXIgIiwgIiBuLXJlcS1hcmdzICIsICIgbi1vcHRpb25hbC12aXNpYmxlLWFy
Z3MgIiwgIgpAQCAtNTE5LDYgKzUyMCw3IEBACiAgICAgIChpZiAoZ2VuZXJpYy1uYW1lIGZ1bmN0
aW9uKQogCSAobGlzdCAiXCIiIChzeW1ib2wtPnN0cmluZyAoZ2VuZXJpYy1uYW1lIGZ1bmN0aW9u
KSkgIlwiIikKIAkgIk5VTEwiKQorICAgICAiLCAiIGZsYWdzLWMtc3RyaW5nCiAgICAgICIpO1xu
IikpKQogCiAMCgo=

# revision id: [EMAIL PROTECTED]
# sha1: f24eaea3085c13d0b93239b13da4896e09fcf516
# inventory sha1: 582e2ab2f97c5287714c38df2115cb9b02b87838
# parent ids:
#   [EMAIL PROTECTED]
# properties:
#   branch-nick: mainline

_______________________________________________
g-wrap-dev mailing list
g-wrap-dev@nongnu.org
http://lists.nongnu.org/mailman/listinfo/g-wrap-dev

Reply via email to