@@ -362,12 +362,17 @@ void *zend_shared_alloc(size_t size)
362
362
return NULL ;
363
363
}
364
364
365
+ static zend_always_inline zend_ulong zend_rotr3 (zend_ulong key )
366
+ {
367
+ return (key >> 3 ) | (key << ((sizeof (key ) * 8 ) - 3 ));
368
+ }
369
+
365
370
int zend_shared_memdup_size (void * source , size_t size )
366
371
{
367
372
void * old_p ;
368
373
zend_ulong key = (zend_ulong )source ;
369
374
370
- key = (key >> 3 ) | ( key << (( sizeof ( key ) * 8 ) - 3 )); /* key = _rotr(key, 3);*/
375
+ key = zend_rotr3 (key );
371
376
if ((old_p = zend_hash_index_find_ptr (& ZCG (xlat_table ), key )) != NULL ) {
372
377
/* we already duplicated this pointer */
373
378
return 0 ;
@@ -383,7 +388,7 @@ static zend_always_inline void *_zend_shared_memdup(void *source, size_t size, b
383
388
384
389
if (get_xlat ) {
385
390
key = (zend_ulong )source ;
386
- key = (key >> 3 ) | ( key << (( sizeof ( key ) * 8 ) - 3 )); /* key = _rotr(key, 3);*/
391
+ key = zend_rotr3 (key );
387
392
if ((old_p = zend_hash_index_find_ptr (& ZCG (xlat_table ), key )) != NULL ) {
388
393
/* we already duplicated this pointer */
389
394
return old_p ;
@@ -395,7 +400,7 @@ static zend_always_inline void *_zend_shared_memdup(void *source, size_t size, b
395
400
if (set_xlat ) {
396
401
if (!get_xlat ) {
397
402
key = (zend_ulong )source ;
398
- key = (key >> 3 ) | ( key << (( sizeof ( key ) * 8 ) - 3 )); /* key = _rotr(key, 3);*/
403
+ key = zend_rotr3 (key );
399
404
}
400
405
zend_hash_index_add_new_ptr (& ZCG (xlat_table ), key , retval );
401
406
}
@@ -535,7 +540,7 @@ void zend_shared_alloc_register_xlat_entry(const void *old, const void *new)
535
540
{
536
541
zend_ulong key = (zend_ulong )old ;
537
542
538
- key = (key >> 3 ) | ( key << (( sizeof ( key ) * 8 ) - 3 )); /* key = _rotr(key, 3);*/
543
+ key = zend_rotr3 (key );
539
544
zend_hash_index_add_new_ptr (& ZCG (xlat_table ), key , (void * )new );
540
545
}
541
546
@@ -544,7 +549,7 @@ void *zend_shared_alloc_get_xlat_entry(const void *old)
544
549
void * retval ;
545
550
zend_ulong key = (zend_ulong )old ;
546
551
547
- key = (key >> 3 ) | ( key << (( sizeof ( key ) * 8 ) - 3 )); /* key = _rotr(key, 3);*/
552
+ key = zend_rotr3 (key );
548
553
if ((retval = zend_hash_index_find_ptr (& ZCG (xlat_table ), key )) == NULL ) {
549
554
return NULL ;
550
555
}
0 commit comments