|
From: <sv...@va...> - 2012-09-02 20:52:18
|
sewardj 2012-09-02 21:52:10 +0100 (Sun, 02 Sep 2012)
New Revision: 12943
Log:
Merge from trunk, r12893 (Implement a wrapper for wcslen on Linux, #298281)
Modified directories:
branches/VALGRIND_3_8_BRANCH/
branches/VALGRIND_3_8_BRANCH/coregrind/
branches/VALGRIND_3_8_BRANCH/coregrind/m_syswrap/
Modified files:
branches/VALGRIND_3_8_BRANCH/coregrind/m_syswrap/syswrap-generic.c
branches/VALGRIND_3_8_BRANCH/memcheck/mc_replace_strmem.c
Modified: branches/VALGRIND_3_8_BRANCH/
Modified: branches/VALGRIND_3_8_BRANCH/coregrind/
Modified: branches/VALGRIND_3_8_BRANCH/coregrind/m_syswrap/
Property changed: branches/VALGRIND_3_8_BRANCH/coregrind/m_syswrap (+0 -0)
___________________________________________________________________
Name: svn:mergeinfo
- /branches/TCHAIN/coregrind/m_syswrap:12477-12516
/trunk/coregrind/m_syswrap:12873,12881-12883,12885,12887,12891-12892
+ /branches/TCHAIN/coregrind/m_syswrap:12477-12516
/trunk/coregrind/m_syswrap:12873,12881-12883,12885,12887,12891-12893
Property changed: branches/VALGRIND_3_8_BRANCH/coregrind (+0 -0)
___________________________________________________________________
Name: svn:mergeinfo
- /branches/TCHAIN/coregrind:12477-12516
/trunk/coregrind:12873,12881,12885,12887,12891-12892
+ /branches/TCHAIN/coregrind:12477-12516
/trunk/coregrind:12873,12881,12885,12887,12891-12893
Property changed: branches/VALGRIND_3_8_BRANCH/coregrind/m_syswrap/syswrap-generic.c (+0 -0)
___________________________________________________________________
Name: svn:mergeinfo
- /branches/TCHAIN/coregrind/m_syswrap/syswrap-generic.c:12477-12516
/trunk/coregrind/m_syswrap/syswrap-generic.c:12874,12878-12879,12881-12883,12885,12887,12891-12892
+ /branches/TCHAIN/coregrind/m_syswrap/syswrap-generic.c:12477-12516
/trunk/coregrind/m_syswrap/syswrap-generic.c:12874,12878-12879,12881-12883,12885,12887,12891-12893
Property changed: branches/VALGRIND_3_8_BRANCH (+0 -0)
___________________________________________________________________
Name: svn:mergeinfo
- /branches/TCHAIN:12477-12516
/trunk:12873,12878-12879,12885,12887,12891-12892
+ /branches/TCHAIN:12477-12516
/trunk:12873,12878-12879,12885,12887,12891-12893
Modified: branches/VALGRIND_3_8_BRANCH/memcheck/mc_replace_strmem.c (+27 -0)
===================================================================
--- branches/VALGRIND_3_8_BRANCH/memcheck/mc_replace_strmem.c 2012-09-02 21:50:15 +01:00 (rev 12942)
+++ branches/VALGRIND_3_8_BRANCH/memcheck/mc_replace_strmem.c 2012-09-02 21:52:10 +01:00 (rev 12943)
@@ -96,6 +96,7 @@
20340 STRSPN
20350 STRCASESTR
20360 MEMRCHR
+ 20370 WCSLEN
*/
@@ -1543,6 +1544,32 @@
#endif
+/*---------------------- wcslen ----------------------*/
+
+// This is a wchar_t equivalent to strlen. Unfortunately
+// we don't have wchar_t available here, but it looks like
+// a 32 bit int on Linux. I don't know if that is also
+// valid on MacOSX.
+
+#define WCSLEN(soname, fnname) \
+ SizeT VG_REPLACE_FUNCTION_EZU(20370,soname,fnname) \
+ ( const UInt* str ); \
+ SizeT VG_REPLACE_FUNCTION_EZU(20370,soname,fnname) \
+ ( const UInt* str ) \
+ { \
+ SizeT i = 0; \
+ while (str[i] != 0) i++; \
+ return i; \
+ }
+
+#if defined(VGO_linux)
+ WCSLEN(VG_Z_LIBC_SONAME, wcslen)
+
+#elif defined(VGO_darwin)
+
+#endif
+
+
/*------------------------------------------------------------*/
/*--- Improve definedness checking of process environment ---*/
/*------------------------------------------------------------*/
|