[seed] fix #663289 - gtype signal parsing not resetting param count
- From: Alan Knowles <alank src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [seed] fix #663289 - gtype signal parsing not resetting param count
- Date: Thu, 3 Nov 2011 07:18:04 +0000 (UTC)
commit 2717feb7db0e8516deb3fbe32c8e4204f9722887
Author: Alan Knowles <alan akbkhome com>
Date: Thu Nov 3 15:17:05 2011 +0800
fix #663289 - gtype signal parsing not resetting param count
libseed/seed-gtype.c | 6 ++++-
tests/javascript/gtypes/Makefile.am | 2 +
.../gtypes/gtype-signal-order-bug663289.js | 25 ++++++++++++++++++++
3 files changed, 32 insertions(+), 1 deletions(-)
---
diff --git a/libseed/seed-gtype.c b/libseed/seed-gtype.c
index 6686702..1121326 100644
--- a/libseed/seed-gtype.c
+++ b/libseed/seed-gtype.c
@@ -429,7 +429,11 @@ seed_gtype_install_signals (JSContextRef ctx,
return_type = seed_value_to_long (ctx, jsreturn_type, exception);
jsparams = seed_object_get_property (ctx, signal_def, "parameters");
-
+
+ // reset params..
+ param_types = NULL;
+ n_params = 0;
+
if (!JSValueIsNull (ctx, jsparams) && JSValueIsObject (ctx, jsparams))
{
n_params =
diff --git a/tests/javascript/gtypes/Makefile.am b/tests/javascript/gtypes/Makefile.am
index 9efebe1..f58d745 100644
--- a/tests/javascript/gtypes/Makefile.am
+++ b/tests/javascript/gtypes/Makefile.am
@@ -4,6 +4,7 @@ EXTRA_DIST = \
gtype.js \
gtype-gtype.js \
gtype-signal-args.js \
+ gtype-signal-order-bug663289.js \
gtype-property-construct.js \
gtype-property-nice.js \
gtype-self.js \
@@ -18,6 +19,7 @@ TESTS = \
gtype.js \
gtype-gtype.js \
gtype-signal-args.js \
+ gtype-signal-order-bug663289.js \
gtype-property-construct.js \
gtype-property-nice.js \
gtype-self.js \
diff --git a/tests/javascript/gtypes/gtype-signal-order-bug663289.js b/tests/javascript/gtypes/gtype-signal-order-bug663289.js
new file mode 100755
index 0000000..03709bc
--- /dev/null
+++ b/tests/javascript/gtypes/gtype-signal-order-bug663289.js
@@ -0,0 +1,25 @@
+#!/usr/bin/env seed
+
+testsuite = imports.testsuite
+GObject = imports.gi.GObject
+
+TestObject = new GType({
+ parent: GObject.Object.type,
+ name: "TestObject",
+ signals: [{name: "more_args",
+ parameters: [GObject.TYPE_INT,
+ GObject.TYPE_STRING]},
+ {name: "less_args",
+ return_type: GObject.TYPE_BOOLEAN}]
+})
+
+t = new TestObject()
+
+t.signal.less_args.connect(function(object)
+{
+ return true
+})
+
+testsuite.assert(t.signal.less_args.emit())
+
+testsuite.checkAsserts(1)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]