Sun Sep 17 2000 Elliot Lee <sopwith@redhat.com> Define g_alloca() as an
authorElliot Lee <sopwith@src.gnome.org>
Sun, 17 Sep 2000 22:18:48 +0000 (22:18 +0000)
committerElliot Lee <sopwith@src.gnome.org>
Sun, 17 Sep 2000 22:18:48 +0000 (22:18 +0000)
Sun Sep 17 2000 Elliot Lee <sopwith@redhat.com>
* 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.

13 files changed:
ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
configure.in
gconvert.c
glib.h
glib/gconvert.c
glib/glib.h

index d2dc8c5..60fe94e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Sun Sep 17 2000 Elliot Lee <sopwith@redhat.com>
+       * 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  <otaylor@redhat.com>
 
        * glib.h gconvert.c (g_convert): Havoc Pennington's implementation 
index d2dc8c5..60fe94e 100644 (file)
@@ -1,3 +1,7 @@
+Sun Sep 17 2000 Elliot Lee <sopwith@redhat.com>
+       * 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  <otaylor@redhat.com>
 
        * glib.h gconvert.c (g_convert): Havoc Pennington's implementation 
index d2dc8c5..60fe94e 100644 (file)
@@ -1,3 +1,7 @@
+Sun Sep 17 2000 Elliot Lee <sopwith@redhat.com>
+       * 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  <otaylor@redhat.com>
 
        * glib.h gconvert.c (g_convert): Havoc Pennington's implementation 
index d2dc8c5..60fe94e 100644 (file)
@@ -1,3 +1,7 @@
+Sun Sep 17 2000 Elliot Lee <sopwith@redhat.com>
+       * 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  <otaylor@redhat.com>
 
        * glib.h gconvert.c (g_convert): Havoc Pennington's implementation 
index d2dc8c5..60fe94e 100644 (file)
@@ -1,3 +1,7 @@
+Sun Sep 17 2000 Elliot Lee <sopwith@redhat.com>
+       * 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  <otaylor@redhat.com>
 
        * glib.h gconvert.c (g_convert): Havoc Pennington's implementation 
index d2dc8c5..60fe94e 100644 (file)
@@ -1,3 +1,7 @@
+Sun Sep 17 2000 Elliot Lee <sopwith@redhat.com>
+       * 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  <otaylor@redhat.com>
 
        * glib.h gconvert.c (g_convert): Havoc Pennington's implementation 
index d2dc8c5..60fe94e 100644 (file)
@@ -1,3 +1,7 @@
+Sun Sep 17 2000 Elliot Lee <sopwith@redhat.com>
+       * 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  <otaylor@redhat.com>
 
        * glib.h gconvert.c (g_convert): Havoc Pennington's implementation 
index d2dc8c5..60fe94e 100644 (file)
@@ -1,3 +1,7 @@
+Sun Sep 17 2000 Elliot Lee <sopwith@redhat.com>
+       * 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  <otaylor@redhat.com>
 
        * glib.h gconvert.c (g_convert): Havoc Pennington's implementation 
index d33a6e9..4bda540 100644 (file)
@@ -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 <alloca.h>' >> $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
index b1dfeab..144ad9e 100644 (file)
@@ -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 0c4d9f5..d861013 100644 (file)
--- 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 <alloca.h>
+#endif
+
+#include <string.h>
+#ifdef __GNUC__
+/* glibc already does this for us */
+#ifndef alloca
+# define alloca(size) __builtin_alloca (size)
+#endif
+#else
+# ifdef _MSC_VER
+#  include <malloc.h>
+#  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
index b1dfeab..144ad9e 100644 (file)
@@ -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)
        {
index 0c4d9f5..d861013 100644 (file)
@@ -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 <alloca.h>
+#endif
+
+#include <string.h>
+#ifdef __GNUC__
+/* glibc already does this for us */
+#ifndef alloca
+# define alloca(size) __builtin_alloca (size)
+#endif
+#else
+# ifdef _MSC_VER
+#  include <malloc.h>
+#  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