80
80
#include <fcntl.h>
81
81
#include <errno.h>
82
82
83
+ #ifdef HAVE_VALGRIND
84
+ # include "valgrind/callgrind.h"
85
+ #endif
86
+
83
87
#ifndef _WIN32
84
88
# include <sys/mman.h>
85
89
# ifndef MAP_ANON
@@ -3182,15 +3186,18 @@ size_t zend_mm_globals_size(void)
3182
3186
3183
3187
void * memcpy (void * restrict dest , const void * restrict src , size_t n )
3184
3188
{
3189
+ CALLGRIND_TOGGLE_COLLECT ;
3185
3190
const char * csrc = src ;
3186
3191
char * cdest = dest ;
3187
3192
for (int i = 0 ; i < n ; i ++ ) {
3188
3193
cdest [i ] = csrc [i ];
3189
3194
}
3195
+ CALLGRIND_TOGGLE_COLLECT ;
3190
3196
return dest ;
3191
3197
}
3192
3198
void * memmove (void * dest , const void * src , size_t n )
3193
3199
{
3200
+ CALLGRIND_TOGGLE_COLLECT ;
3194
3201
char * csrc = (char * )src ;
3195
3202
char * cdest = (char * )dest ;
3196
3203
@@ -3203,22 +3210,27 @@ void *memmove(void *dest, const void *src, size_t n)
3203
3210
cdest [n ] = csrc [n ];
3204
3211
}
3205
3212
}
3213
+ CALLGRIND_TOGGLE_COLLECT ;
3206
3214
3207
3215
return dest ;
3208
3216
}
3209
3217
void * memset (void * s , int c , size_t n )
3210
3218
{
3219
+ CALLGRIND_TOGGLE_COLLECT ;
3211
3220
unsigned char * cs = (unsigned char * )s ;
3212
3221
3213
3222
for (int i = 0 ; i < n ; i ++ ) {
3214
3223
cs [i ] = (unsigned char )c ;
3215
3224
}
3225
+ CALLGRIND_TOGGLE_COLLECT ;
3216
3226
3217
3227
return s ;
3218
3228
}
3219
3229
int memcmp (const void * s1 , const void * s2 , size_t n )
3220
3230
{
3231
+ CALLGRIND_TOGGLE_COLLECT ;
3221
3232
if (s1 == s2 ) {
3233
+ CALLGRIND_TOGGLE_COLLECT ;
3222
3234
return 0 ;
3223
3235
}
3224
3236
@@ -3231,6 +3243,7 @@ int memcmp(const void *s1, const void *s2, size_t n)
3231
3243
p ++ ;
3232
3244
q ++ ;
3233
3245
}
3246
+ CALLGRIND_TOGGLE_COLLECT ;
3234
3247
return 0 ;
3235
3248
}
3236
3249
# if defined(__GNUC__ ) && !defined(__clang__ )
0 commit comments