You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by je...@apache.org on 2006/07/12 21:05:51 UTC
svn commit: r421373 - in /apr/apr/trunk: include/arch/win32/apr_arch_misc.h
misc/win32/apr_app.c misc/win32/internal.c misc/win32/misc.c
misc/win32/start.c
Author: jerenkrantz
Date: Wed Jul 12 12:05:51 2006
New Revision: 421373
URL: http://svn.apache.org/viewvc?rev=421373&view=rev
Log:
Protect usage of MS VC++ crtdbg.h functionality.
Originally titled: [patch 14/17] crtdbg.h
Submitted by: John Mark Vandenberg
Reviewed by: Justin Erenkrantz
Modified:
apr/apr/trunk/include/arch/win32/apr_arch_misc.h
apr/apr/trunk/misc/win32/apr_app.c
apr/apr/trunk/misc/win32/internal.c
apr/apr/trunk/misc/win32/misc.c
apr/apr/trunk/misc/win32/start.c
Modified: apr/apr/trunk/include/arch/win32/apr_arch_misc.h
URL: http://svn.apache.org/viewvc/apr/apr/trunk/include/arch/win32/apr_arch_misc.h?rev=421373&r1=421372&r2=421373&view=diff
==============================================================================
--- apr/apr/trunk/include/arch/win32/apr_arch_misc.h (original)
+++ apr/apr/trunk/include/arch/win32/apr_arch_misc.h Wed Jul 12 12:05:51 2006
@@ -138,6 +138,37 @@
#define ELSE_WIN_OS_IS_ANSI
#endif /* WINNT */
+#if defined(_MSC_VER)
+#include "crtdbg.h"
+
+APR_INLINE void* apr_malloc_dbg(size_t size, const char* filename,
+ int linenumber)
+{
+ return _malloc_dbg(size, _CRT_BLOCK, filename, linenumber);
+}
+
+APR_INLINE void* apr_realloc_dbg(void* userData, size_t newSize,
+ const char* filename, int linenumber)
+{
+ return _realloc_dbg(userData, newSize, _CRT_BLOCK, filename, linenumber);
+}
+
+#else
+
+APR_INLINE void* apr_malloc_dbg(size_t size, const char* filename,
+ int linenumber)
+{
+ return malloc(size);
+}
+
+APR_INLINE void* apr_realloc_dbg(void* userData, size_t newSize,
+ const char* filename, int linenumber)
+{
+ return realloc(userData, newSize);
+}
+
+#endif /* ! _MSC_VER */
+
typedef enum {
DLL_WINBASEAPI = 0, // kernel32 From WinBase.h
DLL_WINADVAPI = 1, // advapi32 From WinBase.h
Modified: apr/apr/trunk/misc/win32/apr_app.c
URL: http://svn.apache.org/viewvc/apr/apr/trunk/misc/win32/apr_app.c?rev=421373&r1=421372&r2=421373&view=diff
==============================================================================
--- apr/apr/trunk/misc/win32/apr_app.c (original)
+++ apr/apr/trunk/misc/win32/apr_app.c Wed Jul 12 12:05:51 2006
@@ -35,7 +35,6 @@
#include "apr_general.h"
#include "ShellAPI.h"
-#include "crtdbg.h"
#include "wchar.h"
#include "apr_arch_file_io.h"
#include "assert.h"
@@ -57,8 +56,8 @@
dupenv = apr_wastrtoastr(&env, wenv, -1);
- _environ = _malloc_dbg((dupenv + 1) * sizeof (char *),
- _CRT_BLOCK, __FILE__, __LINE__ );
+ _environ = apr_malloc_dbg((dupenv + 1) * sizeof (char *),
+ __FILE__, __LINE__ );
memcpy(_environ, env, (dupenv + 1) * sizeof (char *));
/* MSVCRT will attempt to maintain the wide environment calls
Modified: apr/apr/trunk/misc/win32/internal.c
URL: http://svn.apache.org/viewvc/apr/apr/trunk/misc/win32/internal.c?rev=421373&r1=421372&r2=421373&view=diff
==============================================================================
--- apr/apr/trunk/misc/win32/internal.c (original)
+++ apr/apr/trunk/misc/win32/internal.c Wed Jul 12 12:05:51 2006
@@ -18,7 +18,6 @@
#include "apr_arch_misc.h"
#include "apr_arch_file_io.h"
-#include <crtdbg.h>
#include <assert.h>
/* This module is the source of -static- helper functions that are
@@ -52,8 +51,8 @@
;
}
- newarr = _malloc_dbg((args + 1) * sizeof(char *),
- _CRT_BLOCK, __FILE__, __LINE__);
+ newarr = apr_malloc_dbg((args + 1) * sizeof(char *),
+ __FILE__, __LINE__);
for (arg = 0; arg < args; ++arg) {
newarr[arg] = (void*)(wcslen(arr[arg]) + 1);
@@ -66,8 +65,8 @@
* 4 ucs bytes will hold a wchar_t pair value (20 bits)
*/
elesize = elesize * 3 + 1;
- ele = elements = _malloc_dbg(elesize * sizeof(char),
- _CRT_BLOCK, __FILE__, __LINE__);
+ ele = elements = apr_malloc_dbg(elesize * sizeof(char),
+ __FILE__, __LINE__);
for (arg = 0; arg < args; ++arg) {
apr_size_t len = (apr_size_t)newarr[arg];
@@ -87,8 +86,8 @@
/* Return to the free store if the heap realloc is the least bit optimized
*/
- ele = _realloc_dbg(elements, ele - elements,
- _CRT_BLOCK, __FILE__, __LINE__);
+ ele = apr_realloc_dbg(elements, ele - elements,
+ __FILE__, __LINE__);
if (ele != elements) {
apr_size_t diff = ele - elements;
Modified: apr/apr/trunk/misc/win32/misc.c
URL: http://svn.apache.org/viewvc/apr/apr/trunk/misc/win32/misc.c?rev=421373&r1=421372&r2=421373&view=diff
==============================================================================
--- apr/apr/trunk/misc/win32/misc.c (original)
+++ apr/apr/trunk/misc/win32/misc.c Wed Jul 12 12:05:51 2006
@@ -16,7 +16,6 @@
#include "apr_private.h"
#include "apr_arch_misc.h"
-#include "crtdbg.h"
#include "apr_arch_file_io.h"
#include "assert.h"
#include "apr_lib.h"
Modified: apr/apr/trunk/misc/win32/start.c
URL: http://svn.apache.org/viewvc/apr/apr/trunk/misc/win32/start.c?rev=421373&r1=421372&r2=421373&view=diff
==============================================================================
--- apr/apr/trunk/misc/win32/start.c (original)
+++ apr/apr/trunk/misc/win32/start.c Wed Jul 12 12:05:51 2006
@@ -23,7 +23,6 @@
#include "apr_arch_misc.h" /* for WSAHighByte / WSALowByte */
#include "wchar.h"
#include "apr_arch_file_io.h"
-#include "crtdbg.h"
#include "assert.h"
/* This symbol is _private_, although it must be exported.
@@ -54,8 +53,8 @@
}
wsize = 1 + wch - arrsz;
- newarr = _malloc_dbg((args + 1) * sizeof(char *),
- _CRT_BLOCK, __FILE__, __LINE__);
+ newarr = apr_malloc_dbg((args + 1) * sizeof(char *),
+ __FILE__, __LINE__);
/* This is a safe max allocation, we will realloc after
* processing and return the excess to the free store.
@@ -63,8 +62,8 @@
* 4 ucs bytes will hold a wchar_t pair value (20 bits)
*/
newlen = totlen = wsize * 3 + 1;
- newarr[0] = _malloc_dbg(newlen * sizeof(char),
- _CRT_BLOCK, __FILE__, __LINE__);
+ newarr[0] = apr_malloc_dbg(newlen * sizeof(char),
+ __FILE__, __LINE__);
(void)apr_conv_ucs2_to_utf8(arrsz, &wsize,
newarr[0], &newlen);
@@ -72,8 +71,8 @@
assert(newlen && !wsize);
/* Return to the free store if the heap realloc is the least bit optimized
*/
- newarr[0] = _realloc_dbg(newarr[0], totlen - newlen,
- _CRT_BLOCK, __FILE__, __LINE__);
+ newarr[0] = apr_realloc_dbg(newarr[0], totlen - newlen,
+ __FILE__, __LINE__);
for (arg = 1; arg < args; ++arg) {
newarr[arg] = newarr[arg - 1] + 2;
@@ -128,8 +127,8 @@
dupenv = warrsztoastr(&_environ, sysstr, -1);
if (env) {
- *env = _malloc_dbg((dupenv + 1) * sizeof (char *),
- _CRT_BLOCK, __FILE__, __LINE__ );
+ *env = apr_malloc_dbg((dupenv + 1) * sizeof (char *),
+ __FILE__, __LINE__ );
memcpy((void*)*env, _environ, (dupenv + 1) * sizeof (char *));
}
else {