summaryrefslogtreecommitdiff
path: root/tests/objects/signals-error-marshal.vala
blob: 39c24df2c44a02f9179aaf6b7454c72998ad05cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
errordomain FooError {
	BAD;
}

struct Bar {
	public int i;
}

class Foo : GLib.Object {
	signal void foo (void* p, Bar bar);
	signal void bar (void* p, Error e);
	signal void baz (void* p, FooError e);

	public Foo () {
		bar.connect (callback);
		bar (null, new FooError.BAD ("bad"));

		baz.connect (callback2);
		baz (null, new FooError.BAD ("bad"));
	}

	void callback (void* p, Error e) {
		assert (p == null);
		assert (e.code == FooError.BAD);
	}

	void callback2 (void* p, FooError e) {
		assert (p == null);
		assert (e.code == FooError.BAD);
	}
}

void main() {
	var foo = new Foo ();
}