mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-03-03 14:42:10 +01:00
Require C90 compliance
Assume all supported platforms implement C90, and therefore they (correctly) implement atexit(), memmove(), setlocale(), strerror(), and vprintf(), and have <float.h> and <limits.h>. (Also remove the configure check testing that "do ... while (0)" works correctly; the non-do/while-based version of G_STMT_START and G_STMT_END was removed years ago, but the check remained. Also, remove some checks that configure.ac claimed were needed for libcharset, but aren't actually used.) Note that removing the g_memmove() function is not an ABI break even on systems where g_memmove() was previously not a macro, because it was never marked GLIB_AVAILABLE_IN_ALL or listed in glib.symbols, so it would have been glib-internal since 2004. https://bugzilla.gnome.org/show_bug.cgi?id=710519
This commit is contained in:
parent
7f5b2901cf
commit
6e4a7fca43
@ -180,9 +180,6 @@
|
||||
/* Define to 1 if you have the `fdwalk' function. */
|
||||
/* #undef HAVE_FDWALK */
|
||||
|
||||
/* Define to 1 if you have the <float.h> header file. */
|
||||
#define HAVE_FLOAT_H 1
|
||||
|
||||
/* Define to 1 if you have the <fstab.h> header file. */
|
||||
/* #undef HAVE_FSTAB_H */
|
||||
|
||||
@ -314,9 +311,6 @@
|
||||
/* Define if libelf is available */
|
||||
/* #undef HAVE_LIBELF */
|
||||
|
||||
/* Define to 1 if you have the <limits.h> header file. */
|
||||
#define HAVE_LIMITS_H 1
|
||||
|
||||
/* Define to 1 if you have the `link' function. */
|
||||
/* #undef HAVE_LINK */
|
||||
|
||||
@ -354,9 +348,6 @@
|
||||
/* Define to 1 if you have the `memmem' function. */
|
||||
/* #undef HAVE_MEMMEM */
|
||||
|
||||
/* Define to 1 if you have the `memmove' function. */
|
||||
#define HAVE_MEMMOVE 1
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#define HAVE_MEMORY_H 1
|
||||
|
||||
@ -381,9 +372,6 @@
|
||||
/* Have non-POSIX function getpwuid_r */
|
||||
/* #undef HAVE_NONPOSIX_GETPWUID_R */
|
||||
|
||||
/* Define to 1 if you have the `on_exit' function. */
|
||||
/* #undef HAVE_ON_EXIT */
|
||||
|
||||
/* Define to 1 if you have the `pipe2' function. */
|
||||
/* #undef HAVE_PIPE2 */
|
||||
|
||||
@ -438,9 +426,6 @@
|
||||
/* Define to 1 if you have the `setenv' function. */
|
||||
/* #undef HAVE_SETENV */
|
||||
|
||||
/* Define to 1 if you have the `setlocale' function. */
|
||||
#define HAVE_SETLOCALE 1
|
||||
|
||||
/* Define to 1 if you have the `setmntent' function. */
|
||||
/* #undef HAVE_SETMNTENT */
|
||||
|
||||
@ -466,9 +451,6 @@
|
||||
/* Define to 1 if you have the `statvfs' function. */
|
||||
/* #undef HAVE_STATVFS */
|
||||
|
||||
/* Define to 1 if you have the <stddef.h> header file. */
|
||||
#define HAVE_STDDEF_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#ifndef _MSC_VER
|
||||
#define HAVE_STDINT_H 1
|
||||
@ -492,9 +474,6 @@
|
||||
#endif
|
||||
#endif /* _MSC_VER */
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#define HAVE_STDLIB_H 1
|
||||
|
||||
/* Define to 1 if you have the `stpcpy' function. */
|
||||
/* #undef HAVE_STPCPY */
|
||||
|
||||
@ -507,9 +486,6 @@
|
||||
#define HAVE_STRCASECMP 1
|
||||
#endif /* _MSC_VER or __gcc__ */
|
||||
|
||||
/* Define to 1 if you have the `strerror' function. */
|
||||
#define HAVE_STRERROR 1
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#if !defined(_MSC_VER) && !defined(__DMC__)
|
||||
#define HAVE_STRINGS_H 1
|
||||
@ -517,9 +493,6 @@
|
||||
/* #undef HAVE_STRINGS_H */
|
||||
#endif /* _MSC_VER or __DMC__ */
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#define HAVE_STRING_H 1
|
||||
|
||||
/* Have functions strlcpy and strlcat */
|
||||
/* #undef HAVE_STRLCPY */
|
||||
|
||||
@ -723,9 +696,6 @@
|
||||
/* Define to 1 if you have the `vasprintf' function. */
|
||||
#define HAVE_VASPRINTF 1
|
||||
|
||||
/* Define to 1 if you have the `vprintf' function. */
|
||||
#define HAVE_VPRINTF 1
|
||||
|
||||
/* Define to 1 if you have the `vsnprintf' function. */
|
||||
#ifndef _MSC_VER
|
||||
#define HAVE_VSNPRINTF 1
|
||||
@ -748,9 +718,6 @@
|
||||
/* Define if you have the 'wint_t' type. */
|
||||
#define HAVE_WINT_T 1
|
||||
|
||||
/* Have a working bcopy */
|
||||
/* #undef HAVE_WORKING_BCOPY */
|
||||
|
||||
/* Define to 1 if xattr is available */
|
||||
/* #undef HAVE_XATTR */
|
||||
|
||||
|
150
configure.ac
150
configure.ac
@ -508,10 +508,9 @@ AS_IF([test "$glib_native_win32" = "yes"], [
|
||||
AM_CONDITIONAL(OS_WIN32_AND_DLL_COMPILATION, [test x$glib_native_win32 = xyes -a x$glib_win32_static_compilation != xyes])
|
||||
|
||||
# Checks for library functions.
|
||||
AC_FUNC_VPRINTF
|
||||
AC_FUNC_ALLOCA
|
||||
AC_CHECK_FUNCS(mmap posix_memalign memalign valloc fsync pipe2 issetugid)
|
||||
AC_CHECK_FUNCS(atexit on_exit timegm gmtime_r)
|
||||
AC_CHECK_FUNCS(timegm gmtime_r)
|
||||
|
||||
AC_CACHE_CHECK([for __libc_enable_secure], glib_cv_have_libc_enable_secure,
|
||||
[AC_TRY_LINK([#include <unistd.h>
|
||||
@ -679,21 +678,6 @@ main (void) {
|
||||
}]])],[g_can_inline=yes],[g_can_inline=no])
|
||||
AC_MSG_RESULT($g_can_inline)
|
||||
|
||||
dnl *** check for working do while(0) macros ***
|
||||
AC_CACHE_CHECK([for working do while(0) macros], g_cv_support_dowhile_macros, [
|
||||
AC_TRY_COMPILE([],[
|
||||
#define STMT_START do
|
||||
#define STMT_END while(0)
|
||||
#define STMT_TEST STMT_START { i = 0; } STMT_END
|
||||
int main(void) { int i = 1; STMT_TEST; return i; }],
|
||||
[g_cv_support_dowhile_macros=yes],
|
||||
[g_cv_support_dowhile_macros=no],
|
||||
[g_cv_support_dowhile_macros=yes])
|
||||
])
|
||||
if test x$g_cv_support_dowhile_macros = xyes; then
|
||||
AC_DEFINE(HAVE_DOWHILE_MACROS, 1, [define for working do while(0) macros])
|
||||
fi
|
||||
|
||||
# check for flavours of varargs macros
|
||||
AC_MSG_CHECKING(for ISO C99 varargs macros in C)
|
||||
AC_TRY_COMPILE([],[
|
||||
@ -788,8 +772,8 @@ fi
|
||||
|
||||
|
||||
# check for header files
|
||||
AC_CHECK_HEADERS([dirent.h float.h limits.h pwd.h grp.h sys/param.h sys/poll.h sys/resource.h])
|
||||
AC_CHECK_HEADERS([sys/time.h sys/times.h sys/wait.h unistd.h values.h])
|
||||
AC_CHECK_HEADERS([dirent.h pwd.h grp.h sys/param.h sys/poll.h sys/resource.h])
|
||||
AC_CHECK_HEADERS([sys/time.h sys/times.h sys/wait.h unistd.h])
|
||||
AC_CHECK_HEADERS([sys/select.h sys/types.h stdint.h inttypes.h sched.h malloc.h])
|
||||
AC_CHECK_HEADERS([sys/vfs.h sys/vmount.h sys/statfs.h sys/statvfs.h sys/filio.h])
|
||||
AC_CHECK_HEADERS([mntent.h sys/mnttab.h sys/vfstab.h sys/mntctl.h fstab.h])
|
||||
@ -797,6 +781,10 @@ AC_CHECK_HEADERS([sys/uio.h])
|
||||
AC_CHECK_HEADERS([linux/magic.h])
|
||||
AC_CHECK_HEADERS([sys/prctl.h])
|
||||
|
||||
# We don't care about this, but we need to keep including it in
|
||||
# glibconfig.h for backward compatibility
|
||||
AC_CHECK_HEADERS([values.h])
|
||||
|
||||
AC_CHECK_HEADERS([sys/mount.h sys/sysctl.h], [], [],
|
||||
[#if HAVE_SYS_PARAM_H
|
||||
#include <sys/param.h>
|
||||
@ -830,8 +818,6 @@ AC_STRUCT_DIRENT_D_TYPE
|
||||
|
||||
# Checks for libcharset
|
||||
AM_LANGINFO_CODESET
|
||||
AC_CHECK_HEADERS([stddef.h stdlib.h string.h])
|
||||
AC_CHECK_FUNCS(setlocale)
|
||||
gl_GLIBC21
|
||||
|
||||
# check additional type sizes
|
||||
@ -978,7 +964,7 @@ int main ()
|
||||
AC_MSG_RESULT($glib_ssize_type)
|
||||
|
||||
# Check for some functions
|
||||
AC_CHECK_FUNCS(lstat strerror strsignal memmove vsnprintf stpcpy strcasecmp strncasecmp poll getcwd vasprintf setenv unsetenv getc_unlocked readlink symlink fdwalk memmem)
|
||||
AC_CHECK_FUNCS(lstat strsignal vsnprintf stpcpy strcasecmp strncasecmp poll getcwd vasprintf setenv unsetenv getc_unlocked readlink symlink fdwalk memmem)
|
||||
AC_CHECK_FUNCS(chown lchmod lchown fchmod fchown link utimes getgrgid getpwuid getresuid)
|
||||
AC_CHECK_FUNCS(getmntent_r setmntent endmntent hasmntopt getfsstat getvfsstat fallocate)
|
||||
# Check for high-resolution sleep functions
|
||||
@ -1247,33 +1233,6 @@ jm_AC_TYPE_INTMAX_T
|
||||
AC_CHECK_FUNCS([snprintf wcslen])
|
||||
AC_FUNC_SNPRINTF_C99
|
||||
|
||||
# Check if bcopy can be used for overlapping copies, if memmove isn't found.
|
||||
# The check is borrowed from the PERL Configure script.
|
||||
AS_IF([test "$ac_cv_func_memmove" != "yes"], [
|
||||
AC_CACHE_CHECK(whether bcopy can handle overlapping copies,
|
||||
glib_cv_working_bcopy,[AC_TRY_RUN([
|
||||
int main() {
|
||||
char buf[128], abc[128], *b;
|
||||
int len, off, align;
|
||||
bcopy("abcdefghijklmnopqrstuvwxyz0123456789", abc, 36);
|
||||
for (align = 7; align >= 0; align--) {
|
||||
for (len = 36; len; len--) {
|
||||
b = buf+align; bcopy(abc, b, len);
|
||||
for (off = 1; off <= len; off++) {
|
||||
bcopy(b, b+off, len); bcopy(b+off, b, len);
|
||||
if (bcmp(b, abc, len)) return(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
return(0);
|
||||
}],glib_cv_working_bcopy=yes,glib_cv_working_bcopy=no)])
|
||||
|
||||
GLIB_ASSERT_SET(glib_cv_working_bcopy)
|
||||
if test "$glib_cv_working_bcopy" = "yes"; then
|
||||
AC_DEFINE(HAVE_WORKING_BCOPY,1,[Have a working bcopy])
|
||||
fi
|
||||
])
|
||||
|
||||
# Check if <sys/select.h> needs to be included for fd_set
|
||||
AC_MSG_CHECKING([for fd_set])
|
||||
AC_TRY_COMPILE([#include <sys/types.h>],
|
||||
@ -2847,12 +2806,8 @@ AC_CONFIG_COMMANDS([glib/glibconfig.h],
|
||||
|
||||
_______EOF
|
||||
|
||||
if test x$glib_limits_h = xyes; then
|
||||
echo '#include <limits.h>' >> $outfile
|
||||
fi
|
||||
if test x$glib_float_h = xyes; then
|
||||
echo '#include <float.h>' >> $outfile
|
||||
fi
|
||||
if test x$glib_values_h = xyes; then
|
||||
echo '#include <values.h>' >> $outfile
|
||||
fi
|
||||
@ -2875,19 +2830,19 @@ _______EOF
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define G_MINFLOAT $glib_mf
|
||||
#define G_MAXFLOAT $glib_Mf
|
||||
#define G_MINDOUBLE $glib_md
|
||||
#define G_MAXDOUBLE $glib_Md
|
||||
#define G_MINSHORT $glib_ms
|
||||
#define G_MAXSHORT $glib_Ms
|
||||
#define G_MAXUSHORT $glib_Mus
|
||||
#define G_MININT $glib_mi
|
||||
#define G_MAXINT $glib_Mi
|
||||
#define G_MAXUINT $glib_Mui
|
||||
#define G_MINLONG $glib_ml
|
||||
#define G_MAXLONG $glib_Ml
|
||||
#define G_MAXULONG $glib_Mul
|
||||
#define G_MINFLOAT FLT_MIN
|
||||
#define G_MAXFLOAT FLT_MAX
|
||||
#define G_MINDOUBLE DBL_MIN
|
||||
#define G_MAXDOUBLE DBL_MAX
|
||||
#define G_MINSHORT SHRT_MIN
|
||||
#define G_MAXSHORT SHRT_MAX
|
||||
#define G_MAXUSHORT USHRT_MAX
|
||||
#define G_MININT INT_MIN
|
||||
#define G_MAXINT INT_MAX
|
||||
#define G_MAXUINT UINT_MAX
|
||||
#define G_MINLONG LONG_MIN
|
||||
#define G_MAXLONG LONG_MAX
|
||||
#define G_MAXULONG ULONG_MAX
|
||||
|
||||
_______EOF
|
||||
|
||||
@ -2998,8 +2953,10 @@ _______EOF
|
||||
|
||||
|
||||
cat >>$outfile <<_______EOF
|
||||
$glib_atexit
|
||||
$glib_memmove
|
||||
#ifndef G_DISABLE_DEPRECATED
|
||||
#define g_ATEXIT(proc) (atexit (proc))
|
||||
#define g_memmove(dest,src,len) G_STMT_START { memmove ((dest), (src), (len)); } G_STMT_END
|
||||
#endif
|
||||
$glib_defines
|
||||
$glib_os
|
||||
$glib_static_compilation
|
||||
@ -3178,34 +3135,6 @@ else
|
||||
glib_header_alloca_h="$ac_cv_header_alloca_h"
|
||||
fi
|
||||
|
||||
case xyes in
|
||||
x$ac_cv_header_float_h)
|
||||
glib_float_h=yes
|
||||
glib_mf=FLT_MIN glib_Mf=FLT_MAX
|
||||
glib_md=DBL_MIN glib_Md=DBL_MAX
|
||||
;;
|
||||
x$ac_cv_header_values_h)
|
||||
glib_values_h=yes
|
||||
glib_mf=MINFLOAT glib_Mf=MAXFLOAT
|
||||
glib_md=MINDOUBLE glib_Md=MAXDOUBLE
|
||||
;;
|
||||
esac
|
||||
|
||||
case xyes in
|
||||
x$ac_cv_header_limits_h)
|
||||
glib_limits_h=yes
|
||||
glib_ms=SHRT_MIN glib_Ms=SHRT_MAX glib_Mus=USHRT_MAX
|
||||
glib_mi=INT_MIN glib_Mi=INT_MAX glib_Mui=UINT_MAX
|
||||
glib_ml=LONG_MIN glib_Ml=LONG_MAX glib_Mul=ULONG_MAX
|
||||
;;
|
||||
x$ac_cv_header_values_h)
|
||||
glib_values_h=yes
|
||||
glib_ms=MINSHORT glib_Ms=MAXSHORT glib_Mus="(((gushort)G_MAXSHORT)*2+1)"
|
||||
glib_mi=MININT glib_Mi=MAXINT glib_Mui="(((guint)G_MAXINT)*2+1)"
|
||||
glib_ml=MINLONG glib_Ml=MAXLONG glib_Mul="(((gulong)G_MAXLONG)*2+1)"
|
||||
;;
|
||||
esac
|
||||
|
||||
if test x$ac_cv_header_sys_poll_h = xyes ; then
|
||||
glib_sys_poll_h=yes
|
||||
fi
|
||||
@ -3387,35 +3316,6 @@ $ac_cv_sizeof___int64)
|
||||
esac
|
||||
|
||||
|
||||
case xyes in
|
||||
x$ac_cv_func_atexit)
|
||||
glib_atexit="
|
||||
#define g_ATEXIT(proc) (atexit (proc))"
|
||||
;;
|
||||
x$ac_cv_func_on_exit)
|
||||
glib_atexit="
|
||||
#define g_ATEXIT(proc) (on_exit ((void (*)(int, void*))(proc), NULL))"
|
||||
;;
|
||||
esac
|
||||
|
||||
case xyes in
|
||||
x$ac_cv_func_memmove)
|
||||
glib_memmove='
|
||||
#define g_memmove(dest,src,len) G_STMT_START { memmove ((dest), (src), (len)); } G_STMT_END'
|
||||
;;
|
||||
x$glib_cv_working_bcopy)
|
||||
glib_memmove="
|
||||
/* memmove isn't available, but bcopy can copy overlapping memory regions */
|
||||
#define g_memmove(d,s,n) G_STMT_START { bcopy ((s), (d), (n)); } G_STMT_END"
|
||||
;;
|
||||
*)
|
||||
glib_memmove="
|
||||
/* memmove isn't found and bcopy can't copy overlapping memory regions,
|
||||
* so we have to roll our own copy routine. */
|
||||
void g_memmove (void* dest, const void * src, unsigned long len);"
|
||||
;;
|
||||
esac
|
||||
|
||||
glib_defines="
|
||||
#define GLIB_MAJOR_VERSION $GLIB_MAJOR_VERSION
|
||||
#define GLIB_MINOR_VERSION $GLIB_MINOR_VERSION
|
||||
|
@ -639,7 +639,7 @@ compact_buffer (GBufferedInputStream *stream)
|
||||
|
||||
current_size = priv->end - priv->pos;
|
||||
|
||||
g_memmove (priv->buffer, priv->buffer + priv->pos, current_size);
|
||||
memmove (priv->buffer, priv->buffer + priv->pos, current_size);
|
||||
|
||||
priv->pos = 0;
|
||||
priv->end = current_size;
|
||||
|
@ -431,7 +431,7 @@ flush_buffer (GBufferedOutputStream *stream,
|
||||
count = priv->pos - bytes_written;
|
||||
|
||||
if (count > 0)
|
||||
g_memmove (priv->buffer, priv->buffer + bytes_written, count);
|
||||
memmove (priv->buffer, priv->buffer + bytes_written, count);
|
||||
|
||||
priv->pos -= bytes_written;
|
||||
|
||||
|
@ -476,7 +476,7 @@ g_array_prepend_vals (GArray *farray,
|
||||
|
||||
g_array_maybe_expand (array, len);
|
||||
|
||||
g_memmove (g_array_elt_pos (array, len), g_array_elt_pos (array, 0),
|
||||
memmove (g_array_elt_pos (array, len), g_array_elt_pos (array, 0),
|
||||
g_array_elt_len (array, array->len));
|
||||
|
||||
memcpy (g_array_elt_pos (array, 0), data, g_array_elt_len (array, len));
|
||||
@ -525,7 +525,7 @@ g_array_insert_vals (GArray *farray,
|
||||
|
||||
g_array_maybe_expand (array, len);
|
||||
|
||||
g_memmove (g_array_elt_pos (array, len + index_),
|
||||
memmove (g_array_elt_pos (array, len + index_),
|
||||
g_array_elt_pos (array, index_),
|
||||
g_array_elt_len (array, array->len - index_));
|
||||
|
||||
@ -597,7 +597,7 @@ g_array_remove_index (GArray *farray,
|
||||
array->clear_func (g_array_elt_pos (array, index_));
|
||||
|
||||
if (index_ != array->len - 1)
|
||||
g_memmove (g_array_elt_pos (array, index_),
|
||||
memmove (g_array_elt_pos (array, index_),
|
||||
g_array_elt_pos (array, index_ + 1),
|
||||
g_array_elt_len (array, array->len - index_ - 1));
|
||||
|
||||
@ -684,7 +684,7 @@ g_array_remove_range (GArray *farray,
|
||||
}
|
||||
|
||||
if (index_ + length != array->len)
|
||||
g_memmove (g_array_elt_pos (array, index_),
|
||||
memmove (g_array_elt_pos (array, index_),
|
||||
g_array_elt_pos (array, index_ + length),
|
||||
(array->len - (index_ + length)) * array->elt_size);
|
||||
|
||||
@ -1185,7 +1185,7 @@ g_ptr_array_remove_index (GPtrArray *farray,
|
||||
array->element_free_func (array->pdata[index_]);
|
||||
|
||||
if (index_ != array->len - 1)
|
||||
g_memmove (array->pdata + index_, array->pdata + index_ + 1,
|
||||
memmove (array->pdata + index_, array->pdata + index_ + 1,
|
||||
sizeof (gpointer) * (array->len - index_ - 1));
|
||||
|
||||
array->len -= 1;
|
||||
@ -1269,7 +1269,7 @@ g_ptr_array_remove_range (GPtrArray *farray,
|
||||
|
||||
if (index_ + length != array->len)
|
||||
{
|
||||
g_memmove (&array->pdata[index_],
|
||||
memmove (&array->pdata[index_],
|
||||
&array->pdata[index_ + length],
|
||||
(array->len - (index_ + length)) * sizeof (gpointer));
|
||||
}
|
||||
|
@ -215,7 +215,7 @@ g_bsearch_array_grow (GBSearchArray *barray,
|
||||
else
|
||||
barray = (GBSearchArray *) g_realloc (barray, sizeof (GBSearchArray) + new_size);
|
||||
node = G_BSEARCH_ARRAY_NODES (barray) + index_ * bconfig->sizeof_node;
|
||||
g_memmove (node + bconfig->sizeof_node, node, (barray->n_nodes - index_) * bconfig->sizeof_node);
|
||||
memmove (node + bconfig->sizeof_node, node, (barray->n_nodes - index_) * bconfig->sizeof_node);
|
||||
barray->n_nodes += 1;
|
||||
return barray;
|
||||
}
|
||||
@ -271,7 +271,7 @@ g_bsearch_array_remove (GBSearchArray *barray,
|
||||
|
||||
barray->n_nodes -= 1;
|
||||
node = G_BSEARCH_ARRAY_NODES (barray) + index_ * bconfig->sizeof_node;
|
||||
g_memmove (node, node + bconfig->sizeof_node, (barray->n_nodes - index_) * bconfig->sizeof_node);
|
||||
memmove (node, node + bconfig->sizeof_node, (barray->n_nodes - index_) * bconfig->sizeof_node);
|
||||
if (G_UNLIKELY (bconfig->flags & G_BSEARCH_ARRAY_AUTO_SHRINK))
|
||||
{
|
||||
guint new_size = barray->n_nodes * bconfig->sizeof_node;
|
||||
|
@ -2419,7 +2419,7 @@ g_path_get_dirname (const gchar *file_name)
|
||||
|
||||
len = (guint) 1 + base - file_name;
|
||||
base = g_new (gchar, len + 1);
|
||||
g_memmove (base, file_name, len);
|
||||
memmove (base, file_name, len);
|
||||
base[len] = 0;
|
||||
|
||||
return base;
|
||||
|
@ -1265,10 +1265,7 @@ allocator_add_slab (Allocator *allocator,
|
||||
guint i;
|
||||
if (!mem)
|
||||
{
|
||||
const gchar *syserr = "unknown error";
|
||||
#if HAVE_STRERROR
|
||||
syserr = strerror (errno);
|
||||
#endif
|
||||
const gchar *syserr = strerror (errno);
|
||||
mem_error ("failed to allocate %u bytes (alignment: %u): %s\n",
|
||||
(guint) (page_size - NATIVE_MALLOC_PADDING), (guint) page_size, syserr);
|
||||
}
|
||||
@ -1534,10 +1531,7 @@ static SmcBranch **smc_tree_root = NULL;
|
||||
static void
|
||||
smc_tree_abort (int errval)
|
||||
{
|
||||
const char *syserr = "unknown error";
|
||||
#if HAVE_STRERROR
|
||||
syserr = strerror (errval);
|
||||
#endif
|
||||
const char *syserr = strerror (errval);
|
||||
mem_error ("MemChecker: failure in debugging tree: %s", syserr);
|
||||
}
|
||||
|
||||
@ -1553,7 +1547,7 @@ smc_tree_branch_grow_L (SmcBranch *branch,
|
||||
if (!branch->entries)
|
||||
smc_tree_abort (errno);
|
||||
entry = branch->entries + index;
|
||||
g_memmove (entry + 1, entry, (branch->n_entries - index) * sizeof (entry[0]));
|
||||
memmove (entry + 1, entry, (branch->n_entries - index) * sizeof (entry[0]));
|
||||
branch->n_entries += 1;
|
||||
return entry;
|
||||
}
|
||||
@ -1652,7 +1646,7 @@ smc_tree_remove (SmcKType key)
|
||||
{
|
||||
unsigned int i = entry - smc_tree_root[ix0][ix1].entries;
|
||||
smc_tree_root[ix0][ix1].n_entries -= 1;
|
||||
g_memmove (entry, entry + 1, (smc_tree_root[ix0][ix1].n_entries - i) * sizeof (entry[0]));
|
||||
memmove (entry, entry + 1, (smc_tree_root[ix0][ix1].n_entries - i) * sizeof (entry[0]));
|
||||
if (!smc_tree_root[ix0][ix1].n_entries)
|
||||
{
|
||||
/* avoid useless pressure on the memory system */
|
||||
|
@ -1250,25 +1250,14 @@ g_ascii_strtoll (const gchar *nptr,
|
||||
const gchar *
|
||||
g_strerror (gint errnum)
|
||||
{
|
||||
gchar buf[64];
|
||||
gchar *msg;
|
||||
gchar *tofree;
|
||||
gchar *tofree = NULL;
|
||||
const gchar *ret;
|
||||
gint saved_errno = errno;
|
||||
|
||||
msg = tofree = NULL;
|
||||
|
||||
#ifdef HAVE_STRERROR
|
||||
msg = strerror (errnum);
|
||||
if (!g_get_charset (NULL))
|
||||
msg = tofree = g_locale_to_utf8 (msg, -1, NULL, NULL, NULL);
|
||||
#endif
|
||||
|
||||
if (!msg)
|
||||
{
|
||||
msg = buf;
|
||||
_g_sprintf (msg, "unknown error (%d)", errnum);
|
||||
}
|
||||
|
||||
ret = g_intern_string (msg);
|
||||
g_free (tofree);
|
||||
@ -2220,7 +2209,7 @@ g_strchug (gchar *string)
|
||||
for (start = (guchar*) string; *start && g_ascii_isspace (*start); start++)
|
||||
;
|
||||
|
||||
g_memmove (string, start, strlen ((gchar *) start) + 1);
|
||||
memmove (string, start, strlen ((gchar *) start) + 1);
|
||||
|
||||
return string;
|
||||
}
|
||||
|
@ -460,7 +460,7 @@ g_string_insert_len (GString *string,
|
||||
|
||||
/* Open up space where we are going to insert. */
|
||||
if (pos < string->len)
|
||||
g_memmove (string->str + pos + len, string->str + pos, string->len - pos);
|
||||
memmove (string->str + pos + len, string->str + pos, string->len - pos);
|
||||
|
||||
/* Move the source part before the gap, if any. */
|
||||
if (offset < pos)
|
||||
@ -483,7 +483,7 @@ g_string_insert_len (GString *string,
|
||||
* of the old string to the end, opening up space
|
||||
*/
|
||||
if (pos < string->len)
|
||||
g_memmove (string->str + pos + len, string->str + pos, string->len - pos);
|
||||
memmove (string->str + pos + len, string->str + pos, string->len - pos);
|
||||
|
||||
/* insert the new string */
|
||||
if (len == 1)
|
||||
@ -805,7 +805,7 @@ g_string_insert_c (GString *string,
|
||||
|
||||
/* If not just an append, move the old stuff */
|
||||
if (pos < string->len)
|
||||
g_memmove (string->str + pos + 1, string->str + pos, string->len - pos);
|
||||
memmove (string->str + pos + 1, string->str + pos, string->len - pos);
|
||||
|
||||
string->str[pos] = c;
|
||||
|
||||
@ -880,7 +880,7 @@ g_string_insert_unichar (GString *string,
|
||||
|
||||
/* If not just an append, move the old stuff */
|
||||
if (pos < string->len)
|
||||
g_memmove (string->str + pos + charlen, string->str + pos, string->len - pos);
|
||||
memmove (string->str + pos + charlen, string->str + pos, string->len - pos);
|
||||
|
||||
dest = string->str + pos;
|
||||
/* Code copied from g_unichar_to_utf() */
|
||||
@ -997,7 +997,7 @@ g_string_erase (GString *string,
|
||||
g_return_val_if_fail (pos + len <= string->len, string);
|
||||
|
||||
if (pos + len < string->len)
|
||||
g_memmove (string->str + pos, string->str + pos + len, string->len - (pos + len));
|
||||
memmove (string->str + pos, string->str + pos + len, string->len - (pos + len));
|
||||
}
|
||||
|
||||
string->len -= len;
|
||||
|
@ -172,7 +172,6 @@ _glib_get_dll_directory (void)
|
||||
|
||||
#endif
|
||||
|
||||
#if !defined (HAVE_MEMMOVE) && !defined (HAVE_WORKING_BCOPY)
|
||||
/**
|
||||
* g_memmove:
|
||||
* @dest: the destination address to copy the bytes to.
|
||||
@ -182,37 +181,8 @@ _glib_get_dll_directory (void)
|
||||
* Copies a block of memory @len bytes long, from @src to @dest.
|
||||
* The source and destination areas may overlap.
|
||||
*
|
||||
* In order to use this function, you must include
|
||||
* <filename>string.h</filename> yourself, because this macro will
|
||||
* typically simply resolve to memmove() and GLib does not include
|
||||
* <filename>string.h</filename> for you.
|
||||
* Deprecated:2.40: Just use memmove().
|
||||
*/
|
||||
void
|
||||
g_memmove (gpointer dest,
|
||||
gconstpointer src,
|
||||
gulong len)
|
||||
{
|
||||
gchar* destptr = dest;
|
||||
const gchar* srcptr = src;
|
||||
if (src + len < dest || dest + len < src)
|
||||
{
|
||||
bcopy (src, dest, len);
|
||||
return;
|
||||
}
|
||||
else if (dest <= src)
|
||||
{
|
||||
while (len--)
|
||||
*(destptr++) = *(srcptr++);
|
||||
}
|
||||
else
|
||||
{
|
||||
destptr += len;
|
||||
srcptr += len;
|
||||
while (len--)
|
||||
*(--destptr) = *(--srcptr);
|
||||
}
|
||||
}
|
||||
#endif /* !HAVE_MEMMOVE && !HAVE_WORKING_BCOPY */
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
#undef g_atexit
|
||||
@ -259,29 +229,13 @@ void
|
||||
g_atexit (GVoidFunc func)
|
||||
{
|
||||
gint result;
|
||||
const gchar *error = NULL;
|
||||
|
||||
/* keep this in sync with glib.h */
|
||||
|
||||
#ifdef G_NATIVE_ATEXIT
|
||||
result = ATEXIT (func);
|
||||
if (result)
|
||||
error = g_strerror (errno);
|
||||
#elif defined (HAVE_ATEXIT)
|
||||
result = atexit ((void (*)(void)) func);
|
||||
if (result)
|
||||
error = g_strerror (errno);
|
||||
#elif defined (HAVE_ON_EXIT)
|
||||
result = on_exit ((void (*)(int, void *)) func, NULL);
|
||||
if (result)
|
||||
error = g_strerror (errno);
|
||||
#else
|
||||
result = 0;
|
||||
error = "no implementation";
|
||||
#endif /* G_NATIVE_ATEXIT */
|
||||
|
||||
if (error)
|
||||
g_error ("Could not register atexit() function: %s", error);
|
||||
{
|
||||
g_error ("Could not register atexit() function: %s",
|
||||
g_strerror (errno));
|
||||
}
|
||||
}
|
||||
|
||||
/* Based on execvp() from GNU Libc.
|
||||
|
@ -43,7 +43,7 @@ G_BEGIN_DECLS
|
||||
# if defined (__GNUC__) && defined (__PPC__) && (defined (_CALL_SYSV) || defined (_WIN32))
|
||||
# define G_VA_COPY(ap1, ap2) (*(ap1) = *(ap2))
|
||||
# elif defined (G_VA_COPY_AS_ARRAY)
|
||||
# define G_VA_COPY(ap1, ap2) g_memmove ((ap1), (ap2), sizeof (va_list))
|
||||
# define G_VA_COPY(ap1, ap2) memmove ((ap1), (ap2), sizeof (va_list))
|
||||
# else /* va_list is a pointer */
|
||||
# define G_VA_COPY(ap1, ap2) ((ap1) = (ap2))
|
||||
# endif /* va_list is a pointer */
|
||||
@ -239,16 +239,7 @@ gchar *g_format_size_for_display (goffset size);
|
||||
* function passed to g_atexit().
|
||||
*/
|
||||
typedef void (*GVoidFunc) (void);
|
||||
#ifndef ATEXIT
|
||||
# define ATEXIT(proc) g_ATEXIT(proc)
|
||||
#else
|
||||
# define G_NATIVE_ATEXIT
|
||||
#endif /* ATEXIT */
|
||||
/* we use a GLib function as a replacement for ATEXIT, so
|
||||
* the programmer is not required to check the return value
|
||||
* (if there is any in the implementation) and doesn't encounter
|
||||
* missing include files.
|
||||
*/
|
||||
#define ATEXIT(proc) g_ATEXIT(proc)
|
||||
GLIB_DEPRECATED
|
||||
void g_atexit (GVoidFunc func);
|
||||
|
||||
|
@ -5,6 +5,7 @@ noinst_LTLIBRARIES += libpcre.la
|
||||
libpcre_la_CPPFLAGS = \
|
||||
-DG_LOG_DOMAIN=\"GLib-GRegex\" \
|
||||
-DHAVE_CONFIG_H \
|
||||
-DHAVE_MEMMOVE \
|
||||
-DSUPPORT_UCP \
|
||||
-DSUPPORT_UTF \
|
||||
-DSUPPORT_UTF8 \
|
||||
|
@ -548,11 +548,9 @@ test_s (void)
|
||||
g_assert_cmpint (res, ==, 5);
|
||||
g_assert_cmpstr (buf, ==, " abc");
|
||||
|
||||
#if 0 /* HP-UX doesn't get this right */
|
||||
res = g_snprintf (buf, 128, "%*s", -5, "abc");
|
||||
g_assert_cmpint (res, ==, 5);
|
||||
g_assert_cmpstr (buf, ==, "abc ");
|
||||
#endif
|
||||
|
||||
res = g_snprintf (buf, 128, "%*.*s", 5, 2, "abc");
|
||||
g_assert_cmpint (res, ==, 5);
|
||||
|
@ -1525,7 +1525,7 @@ type_iface_add_prerequisite_W (TypeNode *iface,
|
||||
IFACE_NODE_PREREQUISITES (iface),
|
||||
IFACE_NODE_N_PREREQUISITES (iface));
|
||||
prerequisites = IFACE_NODE_PREREQUISITES (iface);
|
||||
g_memmove (prerequisites + i + 1, prerequisites + i,
|
||||
memmove (prerequisites + i + 1, prerequisites + i,
|
||||
sizeof (prerequisites[0]) * (IFACE_NODE_N_PREREQUISITES (iface) - i - 1));
|
||||
prerequisites[i] = prerequisite_type;
|
||||
|
||||
@ -2495,7 +2495,7 @@ g_type_remove_class_cache_func (gpointer cache_data,
|
||||
static_class_cache_funcs[i].cache_func == cache_func)
|
||||
{
|
||||
static_n_class_cache_funcs--;
|
||||
g_memmove (static_class_cache_funcs + i,
|
||||
memmove (static_class_cache_funcs + i,
|
||||
static_class_cache_funcs + i + 1,
|
||||
sizeof (static_class_cache_funcs[0]) * (static_n_class_cache_funcs - i));
|
||||
static_class_cache_funcs = g_renew (ClassCacheFunc, static_class_cache_funcs, static_n_class_cache_funcs);
|
||||
@ -2569,7 +2569,7 @@ g_type_remove_interface_check (gpointer check_data,
|
||||
static_iface_check_funcs[i].check_func == check_func)
|
||||
{
|
||||
static_n_iface_check_funcs--;
|
||||
g_memmove (static_iface_check_funcs + i,
|
||||
memmove (static_iface_check_funcs + i,
|
||||
static_iface_check_funcs + i + 1,
|
||||
sizeof (static_iface_check_funcs[0]) * (static_n_iface_check_funcs - i));
|
||||
static_iface_check_funcs = g_renew (IFaceCheckFunc, static_iface_check_funcs, static_n_iface_check_funcs);
|
||||
@ -3724,7 +3724,7 @@ type_set_qdata_W (TypeNode *node,
|
||||
for (i = 0; i < gdata->n_qdatas - 1; i++)
|
||||
if (qdata[i].quark > quark)
|
||||
break;
|
||||
g_memmove (qdata + i + 1, qdata + i, sizeof (qdata[0]) * (gdata->n_qdatas - i - 1));
|
||||
memmove (qdata + i + 1, qdata + i, sizeof (qdata[0]) * (gdata->n_qdatas - i - 1));
|
||||
qdata[i].quark = quark;
|
||||
qdata[i].data = data;
|
||||
}
|
||||
|
@ -282,7 +282,7 @@ g_value_array_insert (GValueArray *value_array,
|
||||
i = value_array->n_values;
|
||||
value_array_grow (value_array, value_array->n_values + 1, FALSE);
|
||||
if (index + 1 < value_array->n_values)
|
||||
g_memmove (value_array->values + index + 1, value_array->values + index,
|
||||
memmove (value_array->values + index + 1, value_array->values + index,
|
||||
(i - index) * sizeof (value_array->values[0]));
|
||||
memset (value_array->values + index, 0, sizeof (value_array->values[0]));
|
||||
if (value)
|
||||
@ -317,7 +317,7 @@ g_value_array_remove (GValueArray *value_array,
|
||||
g_value_unset (value_array->values + index);
|
||||
value_array->n_values--;
|
||||
if (index < value_array->n_values)
|
||||
g_memmove (value_array->values + index, value_array->values + index + 1,
|
||||
memmove (value_array->values + index, value_array->values + index + 1,
|
||||
(value_array->n_values - index) * sizeof (value_array->values[0]));
|
||||
value_array_shrink (value_array);
|
||||
if (value_array->n_prealloced > value_array->n_values)
|
||||
|
Loading…
x
Reference in New Issue
Block a user