Bugfix: Wrong operator precedence bug in gdome_cast_evnt
Andrew Miller <[email protected]> Thu, 16 Mar 2006 10:36:40 +1300
| Newsgroups | gmane.comp.gnome.gdome |
|---|---|
| Message-ID | <[email protected]> |
Hi all,
I have discovered a bug in gdome:
The following code is in gdome-util.c
GdomeEvent *
gdome_cast_evnt (GdomeEvent *evt) {
if (evt =3D=3D NULL || !GDOME_XML_IS_EVNT(evt))
return NULL;
else
return (GdomeEvent *)evt;
}
However, GDOME_XML_IS_EVNT is defined without outer brackets, and so the =
! binds
to the wrong part of the expression, causing wrong code to be generated.
Patch below...
Best regards,
Andrew Miller
diff -budr gdome2-0.8.1-myfixes/libgdome/events/gdome-evt-util.h
gdome2-0.8.1-myfixes-eventfix/libgdome/events/gdome-evt-util.h
--- gdome2-0.8.1-myfixes/libgdome/events/gdome-evt-util.h 2001-11-2=
3
06:54:21.000000000 +1300
+++ gdome2-0.8.1-myfixes-eventfix/libgdome/events/gdome-evt-util.h =20
2006-03-16 10:19:51.217198954 +1300
@@ -32,8 +32,8 @@
#define GDOME_XML_IS_EVNTL(evntl) 1
#define GDOME_XML_IS_EVNT(evnt) \
-((Gdome_evt_Event *) evnt)->etype =3D=3D GDOME_BASE_EVENT || \
-((Gdome_evt_Event *) evnt)->etype =3D=3D GDOME_MUTATION_EVENT
+(((Gdome_evt_Event *) evnt)->etype =3D=3D GDOME_BASE_EVENT || \
+ ((Gdome_evt_Event *) evnt)->etype =3D=3D GDOME_MUTATION_EVENT)
#define GDOME_XML_IS_MEVNT(mevnt) \
((Gdome_evt_Event *) mevnt)->etype =3D=3D GDOME_MUTATION_EVENT
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.