Ignore:
Timestamp:
2013-09-25T04:58:06+02:00 (12 months ago)
Author:
moo
Message:

merge r1381,r1388,r1394 from trunk: fixed #324: xcache.readonly_protection = Off cause SEGV under mass concurrent

Location:
branches/3.0
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/3.0

  • branches/3.0/processor/processor.m4

    r1357 r1395  
    722722        /* really fast shallow copy */ 
    723723        memcpy(dst, src, sizeof(src[0])); 
    724         dst->refcount[0] = 1000; 
     724        DST(`refcount') = &XG(op_array_dummy_refcount_holder); 
     725        XG(op_array_dummy_refcount_holder) = ((zend_uint) -1) / 2; 
    725726#ifdef ZEND_ACC_ALIAS 
    726727        if ((processor->active_class_entry_src && (processor->active_class_entry_src->ce_flags & ZEND_ACC_TRAIT))) { 
     
    862863 
    863864    STRUCT_P(zend_uint, refcount) 
    864     UNFIXPOINTER(zend_uint, refcount) 
    865     IFSTORE(`dst->refcount[0] = 1;') 
     865    IFSTORE(` 
     866        UNFIXPOINTER(zend_uint, refcount) 
     867        DST(`refcount[0]') = 1; 
     868        FIXPOINTER(zend_uint, refcount) 
     869    ') 
    866870 
    867871#ifdef ZEND_ENGINE_2_4 
Note: See TracChangeset for help on using the changeset viewer.