From 86ce799cdf3502979e1e1ca0f5e902fa946812f4 Mon Sep 17 00:00:00 2001 From: Elliot Lee Date: Sun, 17 Sep 2000 22:18:48 +0000 Subject: [PATCH] Sun Sep 17 2000 Elliot Lee Define g_alloca() as an Sun Sep 17 2000 Elliot Lee * glib.h configure.in: Define g_alloca() as an alloca-that-works-anywhere. * gconvert.c: Fix warnings which could have caused problems on 64-bit platforms. --- ChangeLog | 4 ++++ ChangeLog.pre-2-0 | 4 ++++ ChangeLog.pre-2-10 | 4 ++++ ChangeLog.pre-2-12 | 4 ++++ ChangeLog.pre-2-2 | 4 ++++ ChangeLog.pre-2-4 | 4 ++++ ChangeLog.pre-2-6 | 4 ++++ ChangeLog.pre-2-8 | 4 ++++ configure.in | 9 ++++++++- gconvert.c | 6 ++++-- glib.h | 28 ++++++++++++++++++++++++++++ glib/gconvert.c | 6 ++++-- glib/glib.h | 28 ++++++++++++++++++++++++++++ 13 files changed, 104 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index d2dc8c506..60fe94ead 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sun Sep 17 2000 Elliot Lee + * glib.h configure.in: Define g_alloca() as an alloca-that-works-anywhere. + * gconvert.c: Fix warnings which could have caused problems on 64-bit platforms. + Sun Sep 10 12:37:40 2000 Owen Taylor * glib.h gconvert.c (g_convert): Havoc Pennington's implementation diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index d2dc8c506..60fe94ead 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,7 @@ +Sun Sep 17 2000 Elliot Lee + * glib.h configure.in: Define g_alloca() as an alloca-that-works-anywhere. + * gconvert.c: Fix warnings which could have caused problems on 64-bit platforms. + Sun Sep 10 12:37:40 2000 Owen Taylor * glib.h gconvert.c (g_convert): Havoc Pennington's implementation diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index d2dc8c506..60fe94ead 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,7 @@ +Sun Sep 17 2000 Elliot Lee + * glib.h configure.in: Define g_alloca() as an alloca-that-works-anywhere. + * gconvert.c: Fix warnings which could have caused problems on 64-bit platforms. + Sun Sep 10 12:37:40 2000 Owen Taylor * glib.h gconvert.c (g_convert): Havoc Pennington's implementation diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index d2dc8c506..60fe94ead 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,7 @@ +Sun Sep 17 2000 Elliot Lee + * glib.h configure.in: Define g_alloca() as an alloca-that-works-anywhere. + * gconvert.c: Fix warnings which could have caused problems on 64-bit platforms. + Sun Sep 10 12:37:40 2000 Owen Taylor * glib.h gconvert.c (g_convert): Havoc Pennington's implementation diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index d2dc8c506..60fe94ead 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,7 @@ +Sun Sep 17 2000 Elliot Lee + * glib.h configure.in: Define g_alloca() as an alloca-that-works-anywhere. + * gconvert.c: Fix warnings which could have caused problems on 64-bit platforms. + Sun Sep 10 12:37:40 2000 Owen Taylor * glib.h gconvert.c (g_convert): Havoc Pennington's implementation diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index d2dc8c506..60fe94ead 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,7 @@ +Sun Sep 17 2000 Elliot Lee + * glib.h configure.in: Define g_alloca() as an alloca-that-works-anywhere. + * gconvert.c: Fix warnings which could have caused problems on 64-bit platforms. + Sun Sep 10 12:37:40 2000 Owen Taylor * glib.h gconvert.c (g_convert): Havoc Pennington's implementation diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index d2dc8c506..60fe94ead 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,7 @@ +Sun Sep 17 2000 Elliot Lee + * glib.h configure.in: Define g_alloca() as an alloca-that-works-anywhere. + * gconvert.c: Fix warnings which could have caused problems on 64-bit platforms. + Sun Sep 10 12:37:40 2000 Owen Taylor * glib.h gconvert.c (g_convert): Havoc Pennington's implementation diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index d2dc8c506..60fe94ead 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,7 @@ +Sun Sep 17 2000 Elliot Lee + * glib.h configure.in: Define g_alloca() as an alloca-that-works-anywhere. + * gconvert.c: Fix warnings which could have caused problems on 64-bit platforms. + Sun Sep 10 12:37:40 2000 Owen Taylor * glib.h gconvert.c (g_convert): Havoc Pennington's implementation diff --git a/configure.in b/configure.in index d33a6e92b..4bda5400e 100644 --- a/configure.in +++ b/configure.in @@ -72,7 +72,7 @@ AC_DEFINE_UNQUOTED(GLIB_INTERFACE_AGE, $GLIB_INTERFACE_AGE) AC_DEFINE_UNQUOTED(GLIB_BINARY_AGE, $GLIB_BINARY_AGE) dnl Initialize libtool -AM_PROG_LIBTOOL +AC_PROG_LIBTOOL dnl Initialize maintainer mode AM_MAINTAINER_MODE @@ -221,6 +221,8 @@ AC_HEADER_STDC # Checks for library functions. AC_FUNC_VPRINTF +AC_FUNC_ALLOCA + AC_CHECK_FUNCS(atexit on_exit) AC_CHECK_SIZEOF(char) @@ -1178,6 +1180,9 @@ _______EOF if test x$g_mutex_header_file != x; then echo '#include <'"$g_mutex_header_file"'>' >> $outfile fi + if test "$glib_header_alloca_h" = "yes"; then + echo '#include ' >> $outfile + fi if test x$glib_sys_poll_h = xyes; then echo '#define GLIB_HAVE_SYS_POLL_H' >> $outfile fi @@ -1391,6 +1396,8 @@ esac # on variable expansion in case labels. Look at the generated config.status # for a hint. +glib_header_alloca_h="$ac_cv_header_alloca_h" + case xyes in x$ac_cv_header_float_h) glib_float_h=yes diff --git a/gconvert.c b/gconvert.c index b1dfeab73..144ad9efc 100644 --- a/gconvert.c +++ b/gconvert.c @@ -231,7 +231,7 @@ g_convert_with_fallback (const gchar *str, gchar *outp; const gchar *insert_str = NULL; const gchar *p; - size_t inbytes_remaining; + int inbytes_remaining; const gchar *save_p = NULL; size_t save_inbytes = 0; size_t outbytes_remaining; @@ -301,7 +301,9 @@ g_convert_with_fallback (const gchar *str, while (!done && !have_error) { - err = iconv (cd, &p, &inbytes_remaining, &outp, &outbytes_remaining); + size_t inbytes_tmp = inbytes_remaining; + err = iconv (cd, &p, &inbytes_tmp, &outp, &outbytes_remaining); + inbytes_remaining = inbytes_tmp; if (err == (size_t) -1) { diff --git a/glib.h b/glib.h index 0c4d9f501..d86101320 100644 --- a/glib.h +++ b/glib.h @@ -325,6 +325,34 @@ extern "C" { # define G_BREAKPOINT() G_STMT_START{ raise (5 /* SIGTRAP */); }G_STMT_END #endif /* __i386__ */ +/* g_alloca handling */ +#ifdef GLIB_HAVE_ALLOCA_H +#include +#endif + +#include +#ifdef __GNUC__ +/* glibc already does this for us */ +#ifndef alloca +# define alloca(size) __builtin_alloca (size) +#endif +#else +# ifdef _MSC_VER +# include +# define alloca _alloca +# else +# ifdef _AIX + #pragma alloca +# else +# ifndef alloca /* predefined by HP cc +Olibcalls */ +char *alloca (); +# endif +# endif +# endif +#endif + +#define g_alloca(size) alloca (size) +/* End g_alloca handling */ /* Provide macros for easily allocating memory. The macros * will cast the allocated memory to the specified type diff --git a/glib/gconvert.c b/glib/gconvert.c index b1dfeab73..144ad9efc 100644 --- a/glib/gconvert.c +++ b/glib/gconvert.c @@ -231,7 +231,7 @@ g_convert_with_fallback (const gchar *str, gchar *outp; const gchar *insert_str = NULL; const gchar *p; - size_t inbytes_remaining; + int inbytes_remaining; const gchar *save_p = NULL; size_t save_inbytes = 0; size_t outbytes_remaining; @@ -301,7 +301,9 @@ g_convert_with_fallback (const gchar *str, while (!done && !have_error) { - err = iconv (cd, &p, &inbytes_remaining, &outp, &outbytes_remaining); + size_t inbytes_tmp = inbytes_remaining; + err = iconv (cd, &p, &inbytes_tmp, &outp, &outbytes_remaining); + inbytes_remaining = inbytes_tmp; if (err == (size_t) -1) { diff --git a/glib/glib.h b/glib/glib.h index 0c4d9f501..d86101320 100644 --- a/glib/glib.h +++ b/glib/glib.h @@ -325,6 +325,34 @@ extern "C" { # define G_BREAKPOINT() G_STMT_START{ raise (5 /* SIGTRAP */); }G_STMT_END #endif /* __i386__ */ +/* g_alloca handling */ +#ifdef GLIB_HAVE_ALLOCA_H +#include +#endif + +#include +#ifdef __GNUC__ +/* glibc already does this for us */ +#ifndef alloca +# define alloca(size) __builtin_alloca (size) +#endif +#else +# ifdef _MSC_VER +# include +# define alloca _alloca +# else +# ifdef _AIX + #pragma alloca +# else +# ifndef alloca /* predefined by HP cc +Olibcalls */ +char *alloca (); +# endif +# endif +# endif +#endif + +#define g_alloca(size) alloca (size) +/* End g_alloca handling */ /* Provide macros for easily allocating memory. The macros * will cast the allocated memory to the specified type