From: Philippe Waroquiers Date: Fri, 11 Nov 2016 13:55:07 +0000 (+0000) Subject: Add VG_(strIsMemberXA) in pub_tool_xarray.h X-Git-Tag: svn/VALGRIND_3_13_0~299 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b86956b6b9a8f3f556e6aa18e7c5c052a2c33980;p=thirdparty%2Fvalgrind.git Add VG_(strIsMemberXA) in pub_tool_xarray.h This allows to search more efficiently a string in an xarray of string. (support work for xtree) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16122 --- diff --git a/coregrind/m_xarray.c b/coregrind/m_xarray.c index 07f161fee3..3d48f1fca8 100644 --- a/coregrind/m_xarray.c +++ b/coregrind/m_xarray.c @@ -373,6 +373,16 @@ void VG_(xaprintf)( XArray* dst, const HChar* format, ... ) va_end(vargs); } +Bool VG_(strIsMemberXA)(const XArray* xa, const HChar* str ) +{ + Word i; + HChar** members = (HChar**)xa->arr; + + for (i = 0; i < xa->usedsizeE; i++) + if (VG_(strcmp)(str, members[i]) == 0) + return True; + return False; +} /*--------------------------------------------------------------------*/ /*--- end m_xarray.c ---*/ diff --git a/include/pub_tool_xarray.h b/include/pub_tool_xarray.h index 2b0fe9930b..0e91dc0082 100644 --- a/include/pub_tool_xarray.h +++ b/include/pub_tool_xarray.h @@ -166,6 +166,8 @@ extern void VG_(getContentsXA_UNSAFE)( XArray* sr, extern void VG_(xaprintf)( XArray* dst, const HChar* format, ... ) PRINTF_CHECK(2, 3); +/* Convenience function: linear search in an XArray of HChar*. */ +extern Bool VG_(strIsMemberXA)(const XArray* xa, const HChar* str ); #endif // __PUB_TOOL_XARRAY_H /*--------------------------------------------------------------------*/