From: ellson Date: Sat, 8 Mar 2008 18:26:30 +0000 (+0000) Subject: Janitor - fix offsetof macro to not generate "cast from pointer to int of different... X-Git-Tag: LAST_LIBGRAPH~32^2~4549 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6468b88bb7d8db8fe777852830945eacec5a0571;p=graphviz Janitor - fix offsetof macro to not generate "cast from pointer to int of different size" on 64bit machines. --- diff --git a/lib/agraph/aghdr.h b/lib/agraph/aghdr.h index 11b90a38b..5d352814b 100644 --- a/lib/agraph/aghdr.h +++ b/lib/agraph/aghdr.h @@ -51,6 +51,12 @@ extern "C" { # ifdef HAVE_UNISTD_H # include # endif /* HAVE_UNISTD_H */ +# ifdef HAVE_STDINT_H +# include +# endif +# ifdef HAVE_INTTYPES_H +# include +# endif #endif /* HAVE_AST */ #ifdef DEBUG @@ -65,7 +71,11 @@ extern "C" { #ifdef offsetof #undef offsetof #endif +#ifdef HAVE_INTPTR_T +#define offsetof(typ,fld) ((intptr_t)(&(((typ*)0)->fld))) +#else #define offsetof(typ,fld) ((int)(&(((typ*)0)->fld))) +#endif #define NOTUSED(var) (void) var #define NILgraph NIL(Agraph_t*) diff --git a/lib/agraph/attr.c b/lib/agraph/attr.c index d171d3407..05fc22ce6 100644 --- a/lib/agraph/attr.c +++ b/lib/agraph/attr.c @@ -28,9 +28,9 @@ static void freesym(Dict_t * d, Void_t * obj, Dtdisc_t * disc); Dtdisc_t AgDataDictDisc = { - (int) offsetof(Agsym_t, name), /* use symbol name as key */ + offsetof(Agsym_t, name), /* use symbol name as key */ -1, - (int) offsetof(Agsym_t, link), + offsetof(Agsym_t, link), NIL(Dtmake_f), freesym, NIL(Dtcompar_f),