diff options
author | jmmv <jmmv@pkgsrc.org> | 2004-04-12 15:53:42 +0000 |
---|---|---|
committer | jmmv <jmmv@pkgsrc.org> | 2004-04-12 15:53:42 +0000 |
commit | b298a7b84c4a6e9b0df3c3a110f4b8cb8bb8a44b (patch) | |
tree | 86caeba14507b5fb1af8a43781128d716f76de1f /sysutils | |
parent | d314aef2d6071f868b1082d8559d9ea767883759 (diff) | |
download | pkgsrc-b298a7b84c4a6e9b0df3c3a110f4b8cb8bb8a44b.tar.gz |
Fix argument passing between the library and the server as the code can't
rely on how the compiler passes parameters to functions. This hopefully
solves several problems: in concrete, one exposed by gnome-system-monitor
when selecting the "My Processes" view (as the function returing the list
takes two arguments, and the second one was beeing passed incorrectly).
Bump PKGREVISION to 1.
Diffstat (limited to 'sysutils')
-rw-r--r-- | sysutils/libgtop2/Makefile | 3 | ||||
-rw-r--r-- | sysutils/libgtop2/distinfo | 3 | ||||
-rw-r--r-- | sysutils/libgtop2/patches/patch-ab | 58 |
3 files changed, 62 insertions, 2 deletions
diff --git a/sysutils/libgtop2/Makefile b/sysutils/libgtop2/Makefile index cb27ac845b8..7c70d498617 100644 --- a/sysutils/libgtop2/Makefile +++ b/sysutils/libgtop2/Makefile @@ -1,7 +1,8 @@ -# $NetBSD: Makefile,v 1.4 2004/04/09 03:47:39 minskim Exp $ +# $NetBSD: Makefile,v 1.5 2004/04/12 15:53:42 jmmv Exp $ DISTNAME= libgtop-2.6.0 PKGNAME= ${DISTNAME:S/-/2-/} +PKGREVISION= 1 CATEGORIES= sysutils gnome MASTER_SITES= ${MASTER_SITE_GNOME:=sources/libgtop/2.6/} EXTRACT_SUFX= .tar.bz2 diff --git a/sysutils/libgtop2/distinfo b/sysutils/libgtop2/distinfo index f24d62d5850..bb15297cc11 100644 --- a/sysutils/libgtop2/distinfo +++ b/sysutils/libgtop2/distinfo @@ -1,5 +1,6 @@ -$NetBSD: distinfo,v 1.2 2004/04/07 11:39:48 jmmv Exp $ +$NetBSD: distinfo,v 1.3 2004/04/12 15:53:42 jmmv Exp $ SHA1 (libgtop-2.6.0.tar.bz2) = e6c61a3f7d458b8afa6c9361e71bbdadeafe7e3b Size (libgtop-2.6.0.tar.bz2) = 946822 bytes SHA1 (patch-aa) = 5ebb407abdaedb77ed02c01adbaba70113b333b6 +SHA1 (patch-ab) = a8eebfb379887dfc338d7422a70821511b79f94e diff --git a/sysutils/libgtop2/patches/patch-ab b/sysutils/libgtop2/patches/patch-ab new file mode 100644 index 00000000000..93dd1945a6d --- /dev/null +++ b/sysutils/libgtop2/patches/patch-ab @@ -0,0 +1,58 @@ +$NetBSD: patch-ab,v 1.1 2004/04/12 15:53:42 jmmv Exp $ + +--- lib/lib.pl.orig 2004-03-04 15:16:46.000000000 +0100 ++++ lib/lib.pl +@@ -106,6 +106,8 @@ sub output { + + if ($param_def eq 'string') { + $call_param = ', ' . $line_fields[5]; ++ $param_buf = ''; ++ $buf_set = ''; + $param_decl = ",\n " . $space . ' const char *' . + + $line_fields[5]; +@@ -127,6 +130,17 @@ sub output { + $list =~ s/^.*\(//; + $list =~ s/\)$//; + $count = (@fields = split(/,/, $list, 9999)); ++ ++ if ($count > 0) { ++ $param_buf = "\n\tstruct {\n"; ++ $buf_set = ''; ++ for ($field = 1; $field <= $count; $field++) { ++ $param_buf .= "\t\t$convert{$type} buf_$fields[$field];\n"; ++ $buf_set .= "\tparam_buf.buf_$fields[$field] = $fields[$field];\n"; ++ } ++ $param_buf .= "\t} param_buf;"; ++ } ++ + for ($field = 1; $field <= $count; $field++) { + if ($param_decl eq '') { + $param_decl = ",\n " . $space . ' '; +@@ -139,9 +153,7 @@ sub output { + $fields[$field]; + $call_param = $call_param . ', ' . $fields[$field]; + if ($send_ptr eq '') { +- $send_ptr = "\n\tconst void *send_ptr = &" . +- +- $fields[$field] . ';'; ++ $send_ptr = "\n\tconst void *send_ptr = ¶m_buf;"; + } + if ($send_size eq '') { + $send_size = "\n\tconst size_t send_size =\n\t\t"; +@@ -167,11 +179,13 @@ sub output { + + $feature . ' *buf' . $param_decl . ')'; + +- print '{' . $send_ptr . '' . $send_size; ++ print "{" . $param_buf; ++ ++ print $send_ptr . '' . $send_size; + if ($retval !~ /^void$/) { + print "\t" . $retval . ' retval = (' . $retval . ') 0;'; + } +- print ''; ++ print $buf_set; + + print "\tglibtop_init_r (&server, (1 << GLIBTOP_SYSDEPS_" . + |