[GnomeMeeting-list] 64bit patch
- From: Alexander Larsson <alexl redhat com>
- To: gnomemeeting-list gnome org
- Subject: [GnomeMeeting-list] 64bit patch
- Date: Wed, 9 Oct 2002 05:37:11 -0400 (EDT)
I'd like this patch to be applied:
Index: src/main_window.cpp
===================================================================
RCS file: /cvs/gnome/gnomemeeting/src/main_window.cpp,v
retrieving revision 1.117
diff -u -p -r1.117 main_window.cpp
--- src/main_window.cpp 6 Oct 2002 21:41:34 -0000 1.117
+++ src/main_window.cpp 9 Oct 2002 09:26:15 -0000
@@ -911,7 +911,7 @@ gnomemeeting_init (GmWindow *gw,
GNOME_PARAM_HUMAN_READABLE_NAME,
_("GnomeMeeting"),
GNOME_PARAM_APP_DATADIR, DATADIR,
- NULL);
+ (void *)NULL);
gm = gnome_app_new ("gnomemeeting", _("GnomeMeeting"));
It fixes a bug on 64bit systems.
Scary details:
On 64bit systems int is 32bit and pointers are 64bit, and in C++ NULL is
defined as 0, not (void *)0 as is common in C[1]. When passing NULL
through a varargs list (such as above) in C++ the compiler can't know from
the context wether the 0 is a pointer or an int, so it picks int. On 64bit
systems this means some random 32 bits of data is used for the other half
of the pointer in the called function.
[1] The language lawyers among us will probably tell me that C doesn't
guarantee NULL to be (void *)0 either. This is true, but most C
implementations use it, and lots of other gtk+/gnome code would break if
this wasn't the case.
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Alexander Larsson Red Hat, Inc
alexl redhat com alla lysator liu se
He's a gun-slinging shark-wrestling stage actor on the edge. She's a
warm-hearted nymphomaniac bodyguard from the wrong side of the tracks. They
fight crime!
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]