Commit 6bcacff1 authored by Yang Tse's avatar Yang Tse
Browse files

WIN32 MemoryTracking: require UNICODE for wide strdup code support

parent 12d01cb6
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -87,7 +87,7 @@ extern curl_free_callback Curl_cfree;
extern curl_realloc_callback Curl_crealloc;
extern curl_strdup_callback Curl_cstrdup;
extern curl_calloc_callback Curl_ccalloc;
#ifdef WIN32
#if defined(WIN32) && defined(UNICODE)
extern curl_wcsdup_callback Curl_cwcsdup;
#endif

@@ -114,14 +114,15 @@ extern curl_wcsdup_callback Curl_cwcsdup;
#define free(ptr) Curl_cfree(ptr)

#ifdef WIN32
#  ifdef UNICODE
#    undef wcsdup
#    define wcsdup(ptr) Curl_cwcsdup(ptr)
#    undef _wcsdup
#    define _wcsdup(ptr) Curl_cwcsdup(ptr)
#    undef _tcsdup
#  ifdef UNICODE
#    define _tcsdup(ptr) Curl_cwcsdup(ptr)
#  else
#    undef _tcsdup
#    define _tcsdup(ptr) Curl_cstrdup(ptr)
#  endif
#endif
+3 −1
Original line number Diff line number Diff line
@@ -270,8 +270,10 @@
#    endif
#  endif
#  include <tchar.h>
#  ifdef UNICODE
     typedef wchar_t *(*curl_wcsdup_callback)(const wchar_t *str);
#  endif
#endif

/*
 * Define USE_WINSOCK to 2 if we have and use WINSOCK2 API, else
+4 −4
Original line number Diff line number Diff line
@@ -252,8 +252,8 @@ curl_free_callback Curl_cfree = (curl_free_callback)free;
curl_realloc_callback Curl_crealloc = (curl_realloc_callback)realloc;
curl_strdup_callback Curl_cstrdup = (curl_strdup_callback)system_strdup;
curl_calloc_callback Curl_ccalloc = (curl_calloc_callback)calloc;
#ifdef WIN32
curl_wcsdup_callback Curl_cwcsdup = (curl_wcsdup_callback)wcsdup;
#if defined(WIN32) && defined(UNICODE)
curl_wcsdup_callback Curl_cwcsdup = (curl_wcsdup_callback)_wcsdup;
#endif
#else
/*
@@ -286,8 +286,8 @@ CURLcode curl_global_init(long flags)
  Curl_crealloc = (curl_realloc_callback)realloc;
  Curl_cstrdup = (curl_strdup_callback)system_strdup;
  Curl_ccalloc = (curl_calloc_callback)calloc;
#ifdef WIN32
  Curl_cwcsdup = (curl_wcsdup_callback)wcsdup;
#if defined(WIN32) && defined(UNICODE)
  Curl_cwcsdup = (curl_wcsdup_callback)_wcsdup;
#endif

  if(flags & CURL_GLOBAL_SSL)
+1 −1
Original line number Diff line number Diff line
@@ -239,7 +239,7 @@ char *curl_dostrdup(const char *str, int line, const char *source)
  return mem;
}

#ifdef WIN32
#if defined(WIN32) && defined(UNICODE)
wchar_t *curl_dowcsdup(const wchar_t *str, int line, const char *source)
{
  wchar_t *mem;
+7 −6
Original line number Diff line number Diff line
@@ -46,7 +46,7 @@ CURL_EXTERN void *curl_dorealloc(void *ptr, size_t size, int line,
                                 const char *source);
CURL_EXTERN void curl_dofree(void *ptr, int line, const char *source);
CURL_EXTERN char *curl_dostrdup(const char *str, int line, const char *source);
#ifdef WIN32
#if defined(WIN32) && defined(UNICODE)
CURL_EXTERN wchar_t *curl_dowcsdup(const wchar_t *str, int line,
                                   const char *source);
#endif
@@ -90,14 +90,15 @@ CURL_EXTERN int curl_fclose(FILE *file, int line, const char *source);
#define free(ptr) curl_dofree(ptr, __LINE__, __FILE__)

#ifdef WIN32
#  ifdef UNICODE
#    undef wcsdup
#    define wcsdup(ptr) curl_dowcsdup(ptr, __LINE__, __FILE__)
#    undef _wcsdup
#    define _wcsdup(ptr) curl_dowcsdup(ptr, __LINE__, __FILE__)
#    undef _tcsdup
#  ifdef UNICODE
#    define _tcsdup(ptr) curl_dowcsdup(ptr, __LINE__, __FILE__)
#  else
#    undef _tcsdup
#    define _tcsdup(ptr) curl_dostrdup(ptr, __LINE__, __FILE__)
#  endif
#endif
Loading