Hi,
The patch below make G-Wrap generate code that uses `static const' data
rather than stack-allocated data when possible.
Thanks,
Ludovic.
# Bazaar revision bundle v0.9
#
# message:
# Slight C code generation improvements.
#
# * guile/g-wrap/guile.scm (function-wrapper-cg): Use `static const' storage
# for `typespecs'. Don't use `scm_values ()' when all out parameters are
# invisible.
#
#
# committer: Ludovic Courtes <[EMAIL PROTECTED]>
# date: Mon 2007-06-25 00:57:43.970999956 +0200
=== modified file guile/g-wrap/guile.scm
--- guile/g-wrap/guile.scm
+++ guile/g-wrap/guile.scm
@@ -321,13 +321,13 @@
(if (zero? nargs)
'()
(list
- " GWTypeSpec *typespec = NULL;\n"
- " GWTypeSpec typespecs[] = { " (string-join
- (map
- (lambda (param)
- (typespec-cg (type param) (typespec param)))
- scm-params)
- ", ") " };\n"))
+ " const GWTypeSpec *typespec = NULL;\n"
+ " static const GWTypeSpec typespecs[] = { "
+ (string-join
+ (map (lambda (param)
+ (typespec-cg (type param) (typespec param)))
+ scm-params)
+ ", ") " };\n"))
(if (needs-result-var? return-type)
(let ((c-value (default-c-value-for-type return-type)))
@@ -487,7 +487,7 @@
" gw_handle_wrapper_error(NULL, &gw__error,\n"
" " fn-c-string ",\n"
" gw__arg_pos);\n"
- (if (null? out-params)
+ (if (null? (filter visible? out-params))
" return gw__scm_result;\n"
(list
" return scm_values (scm_list_n ("
=== modified directory // last-changed:[EMAIL PROTECTED]
... d9d
# revision id: [EMAIL PROTECTED]
# sha1: db8d20bfe28bfc0e8781865673dd33d24cb85e34
# inventory sha1: 0308da0f04e6fdf93a51912449a4122611ed3782
# parent ids:
# [EMAIL PROTECTED]
# base id: [EMAIL PROTECTED]
# properties:
# branch-nick: g-wrap
_______________________________________________
g-wrap-dev mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/g-wrap-dev