mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 04:13:28 +01:00
r18793@catbus: nickm | 2008-03-13 14:09:19 -0400
Add a malloc_good_size() implementation to OpenBSD_malloc_Linux.c. Also, make configure.in not use support functions for the platform malloc when we are not using the platform mallocs. svn:r14010
This commit is contained in:
parent
56580ae84e
commit
0c6fc51909
@ -22,12 +22,16 @@ Changes in version 0.2.1.1-alpha - 2008-??-??
|
|||||||
Fixes bug 625. Bugfix on 0.2.0.x.
|
Fixes bug 625. Bugfix on 0.2.0.x.
|
||||||
- Logging functions now check that the passed severity is sane.
|
- Logging functions now check that the passed severity is sane.
|
||||||
- Use proper log levels in the testsuite call of get_interface_address6().
|
- Use proper log levels in the testsuite call of get_interface_address6().
|
||||||
|
- When using a nonstandard malloc, do not use the platform values for
|
||||||
|
HAVE_MALLOC_GOOD_SIZE or HAVE_MALLOC_USABLE_SIZE.
|
||||||
|
|
||||||
o Minor features:
|
o Minor features:
|
||||||
- Allow separate log levels to be configured for different logging
|
- Allow separate log levels to be configured for different logging
|
||||||
domains. For example, this allows one to log all notices, warnings, or
|
domains. For example, this allows one to log all notices, warnings, or
|
||||||
errors, plus all memory management messages of level debug or higher,
|
errors, plus all memory management messages of level debug or higher,
|
||||||
with: Log [MM] debug-err [*] notice-err file /var/log/tor.
|
with: Log [MM] debug-err [*] notice-err file /var/log/tor.
|
||||||
|
- Add a malloc_good_size implementation to OpenBSD_malloc_linux.c,
|
||||||
|
to avoid unused RAM in buffer chunks and memory pools.
|
||||||
|
|
||||||
|
|
||||||
Changes in version 0.2.0.21-rc - 2008-03-02
|
Changes in version 0.2.0.21-rc - 2008-03-02
|
||||||
|
14
configure.in
14
configure.in
@ -183,7 +183,19 @@ dnl -------------------------------------------------------------------
|
|||||||
dnl Check for functions before libevent, since libevent-1.2 apparently
|
dnl Check for functions before libevent, since libevent-1.2 apparently
|
||||||
dnl exports strlcpy without defining it in a header.
|
dnl exports strlcpy without defining it in a header.
|
||||||
|
|
||||||
AC_CHECK_FUNCS(gettimeofday ftime socketpair uname inet_aton strptime getrlimit strlcat strlcpy strtoull ftello getaddrinfo localtime_r gmtime_r memmem strtok_r inet_pton inet_ntop mallinfo malloc_good_size malloc_usable_size)
|
AC_CHECK_FUNCS(gettimeofday ftime socketpair uname inet_aton strptime getrlimit strlcat strlcpy strtoull ftello getaddrinfo localtime_r gmtime_r memmem strtok_r inet_pton inet_ntop)
|
||||||
|
|
||||||
|
using_custom_malloc=no
|
||||||
|
if test x$enable_openbsd_malloc = xyes ; then
|
||||||
|
AC_DEFINE(HAVE_MALLOC_GOOD_SIZE, 1, [Defined if we have the malloc_good_size function])
|
||||||
|
using_custom_malloc=yes
|
||||||
|
fi
|
||||||
|
if test x$tcmalloc = xyes ; then
|
||||||
|
using_custom_malloc=yes
|
||||||
|
fi
|
||||||
|
if test $using_custom_malloc = no ; then
|
||||||
|
AC_CHECK_FUNCS(mallinfo malloc_good_size malloc_usable_size)
|
||||||
|
fi
|
||||||
|
|
||||||
if test "$enable_threads" = "yes"; then
|
if test "$enable_threads" = "yes"; then
|
||||||
AC_CHECK_HEADERS(pthread.h)
|
AC_CHECK_HEADERS(pthread.h)
|
||||||
|
@ -1998,3 +1998,21 @@ void *valloc(size_t size)
|
|||||||
posix_memalign(&r, malloc_pagesize, size);
|
posix_memalign(&r, malloc_pagesize, size);
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t malloc_good_size(size_t size)
|
||||||
|
{
|
||||||
|
if (size == 0) {
|
||||||
|
return 1;
|
||||||
|
} else if (size <= malloc_maxsize) {
|
||||||
|
int i, j;
|
||||||
|
/* round up to the nearest power of 2, with same approach
|
||||||
|
* as malloc_bytes() uses. */
|
||||||
|
j = 1;
|
||||||
|
i = size - 1;
|
||||||
|
while (i >>= 1)
|
||||||
|
j++;
|
||||||
|
return ((size_t)1) << j;
|
||||||
|
} else {
|
||||||
|
return pageround(size);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user