mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-03 10:05:29 +00:00
Moved VG_(strdup)() and VG_(arena_strdup)() into m_mallocfree.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3878
This commit is contained in:
parent
0e57f4956f
commit
7bf8160d24
@ -131,9 +131,6 @@
|
||||
Exports of vg_mylibc.c
|
||||
------------------------------------------------------------------ */
|
||||
|
||||
/* Tools use VG_(strdup)() which doesn't expose ArenaId */
|
||||
extern Char* VG_(arena_strdup) ( ArenaId aid, const Char* s);
|
||||
|
||||
extern Int VG_(fcntl) ( Int fd, Int cmd, Int arg );
|
||||
extern Int VG_(poll)( struct vki_pollfd *, UInt nfds, Int timeout);
|
||||
|
||||
|
||||
@ -1263,6 +1263,25 @@ void* VG_(arena_realloc) ( ArenaId aid, void* ptr, SizeT req_pszB )
|
||||
}
|
||||
|
||||
|
||||
/* Inline just for the wrapper VG_(strdup) below */
|
||||
__inline__ Char* VG_(arena_strdup) ( ArenaId aid, const Char* s )
|
||||
{
|
||||
Int i;
|
||||
Int len;
|
||||
Char* res;
|
||||
|
||||
if (s == NULL)
|
||||
return NULL;
|
||||
|
||||
len = VG_(strlen)(s) + 1;
|
||||
res = VG_(arena_malloc) (aid, len);
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
res[i] = s[i];
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------*/
|
||||
/*--- Tool-visible functions. ---*/
|
||||
/*------------------------------------------------------------*/
|
||||
@ -1289,6 +1308,11 @@ void* VG_(realloc) ( void* ptr, SizeT size )
|
||||
return VG_(arena_realloc) ( VG_AR_TOOL, ptr, size );
|
||||
}
|
||||
|
||||
Char* VG_(strdup) ( const Char* s )
|
||||
{
|
||||
return VG_(arena_strdup) ( VG_AR_TOOL, s );
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------*/
|
||||
/*--- end ---*/
|
||||
/*--------------------------------------------------------------------*/
|
||||
|
||||
@ -75,6 +75,7 @@ extern void* VG_(arena_calloc) ( ArenaId arena,
|
||||
extern void* VG_(arena_realloc) ( ArenaId arena, void* ptr, SizeT size );
|
||||
extern void* VG_(arena_memalign)( ArenaId aid, SizeT req_alignB,
|
||||
SizeT req_pszB );
|
||||
extern Char* VG_(arena_strdup) ( ArenaId aid, const Char* s);
|
||||
|
||||
/* Sets the size of the redzones at the start and end of heap blocks. This
|
||||
must be called before any of VG_(malloc) and friends are called. */
|
||||
|
||||
@ -208,34 +208,6 @@ Int VG_(poll)( struct vki_pollfd *ufds, UInt nfds, Int timeout)
|
||||
}
|
||||
|
||||
|
||||
/* ---------------------------------------------------------------------
|
||||
strdup()
|
||||
------------------------------------------------------------------ */
|
||||
|
||||
/* Inline just for the wrapper VG_(strdup) below */
|
||||
__inline__ Char* VG_(arena_strdup) ( ArenaId aid, const Char* s )
|
||||
{
|
||||
Int i;
|
||||
Int len;
|
||||
Char* res;
|
||||
|
||||
if (s == NULL)
|
||||
return NULL;
|
||||
|
||||
len = VG_(strlen)(s) + 1;
|
||||
res = VG_(arena_malloc) (aid, len);
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
res[i] = s[i];
|
||||
return res;
|
||||
}
|
||||
|
||||
/* Wrapper to avoid exposing tools to ArenaId's */
|
||||
Char* VG_(strdup) ( const Char* s )
|
||||
{
|
||||
return VG_(arena_strdup) ( VG_AR_TOOL, s );
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------
|
||||
Misc functions looking for a proper home.
|
||||
------------------------------------------------------------------ */
|
||||
|
||||
@ -64,7 +64,6 @@ extern Int VG_(strncmp) ( const Char* s1, const Char* s2, SizeT nmax );
|
||||
extern Char* VG_(strstr) ( const Char* haystack, Char* needle );
|
||||
extern Char* VG_(strchr) ( const Char* s, Char c );
|
||||
extern Char* VG_(strrchr) ( const Char* s, Char c );
|
||||
extern Char* VG_(strdup) ( const Char* s);
|
||||
|
||||
/* Like strcmp() and strncmp(), but stop comparing at any whitespace. */
|
||||
extern Int VG_(strcmp_ws) ( const Char* s1, const Char* s2 );
|
||||
|
||||
@ -37,6 +37,7 @@ extern void* VG_(malloc) ( SizeT nbytes );
|
||||
extern void VG_(free) ( void* p );
|
||||
extern void* VG_(calloc) ( SizeT n, SizeT bytes_per_elem );
|
||||
extern void* VG_(realloc) ( void* p, SizeT size );
|
||||
extern Char* VG_(strdup) ( const Char* s );
|
||||
|
||||
#endif // __PUB_TOOL_MALLOCFREE_H
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user