]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Add VG_(strIsMemberXA) in pub_tool_xarray.h
authorPhilippe Waroquiers <philippe.waroquiers@skynet.be>
Fri, 11 Nov 2016 13:55:07 +0000 (13:55 +0000)
committerPhilippe Waroquiers <philippe.waroquiers@skynet.be>
Fri, 11 Nov 2016 13:55:07 +0000 (13:55 +0000)
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

coregrind/m_xarray.c
include/pub_tool_xarray.h

index 07f161fee3f4773879d39d0414340f2775607f4b..3d48f1fca8d1dfc51b40a6ec5b9b44a7af02f0f8 100644 (file)
@@ -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 ---*/
index 2b0fe9930b22cbd3215ad9b5603d6dc61a211ae6..0e91dc00825b40598b2a400dc652e529f311f7a5 100644 (file)
@@ -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
 
 /*--------------------------------------------------------------------*/