Bug #1272 » variable.patch
| variable.c (working copy) | ||
|---|---|---|
| 
             iv_index_tbl = ROBJECT_IV_INDEX_TBL(obj); 
   | 
||
| 
             if (!iv_index_tbl) break; 
   | 
||
| 
             if (!st_lookup(iv_index_tbl, id, &index)) break; 
   | 
||
| 
             if (len <= index) break; 
   | 
||
| 
             if (len <= (long)index) break; 
   | 
||
| 
             val = ptr[index]; 
   | 
||
| 
             if (val != Qundef) 
   | 
||
| 
                 return val; 
   | 
||
| ... | ... | |
| 
                 ivar_extended = 1; 
   | 
||
| 
             } 
   | 
||
| 
             len = ROBJECT_NUMIV(obj); 
   | 
||
| 
             if (len <= index) { 
   | 
||
| 
             if (len <= (long)index) { 
   | 
||
| 
                 VALUE *ptr = ROBJECT_IVPTR(obj); 
   | 
||
| 
                 if (index < ROBJECT_EMBED_LEN_MAX) { 
   | 
||
| 
                     RBASIC(obj)->flags |= ROBJECT_EMBED; 
   | 
||
| ... | ... | |
| 
                     VALUE *newptr; 
   | 
||
| 
                     long newsize = (index+1) + (index+1)/4; /* (index+1)*1.25 */ 
   | 
||
| 
                     if (!ivar_extended && 
   | 
||
| 
                         iv_index_tbl->num_entries < newsize) { 
   | 
||
| 
                         (long)(iv_index_tbl->num_entries) < newsize) { 
   | 
||
| 
                         newsize = iv_index_tbl->num_entries; 
   | 
||
| 
                     } 
   | 
||
| 
                     if (RBASIC(obj)->flags & ROBJECT_EMBED) { 
   | 
||
| ... | ... | |
| 
             iv_index_tbl = ROBJECT_IV_INDEX_TBL(obj); 
   | 
||
| 
             if (!iv_index_tbl) break; 
   | 
||
| 
             if (!st_lookup(iv_index_tbl, id, &index)) break; 
   | 
||
| 
             if (ROBJECT_NUMIV(obj) <= index) break; 
   | 
||
| 
             if (ROBJECT_NUMIV(obj) <= (long)index) break; 
   | 
||
| 
             val = ROBJECT_IVPTR(obj)[index]; 
   | 
||
| 
             if (val != Qundef) 
   | 
||
| 
                 return Qtrue; 
   | 
||
| ... | ... | |
| 
             iv_index_tbl = ROBJECT_IV_INDEX_TBL(obj); 
   | 
||
| 
             if (!iv_index_tbl) break; 
   | 
||
| 
             if (!st_lookup(iv_index_tbl, id, &index)) break; 
   | 
||
| 
             if (ROBJECT_NUMIV(obj) <= index) break; 
   | 
||
| 
             if (ROBJECT_NUMIV(obj) <= (long)index) break; 
   | 
||
| 
             val = ROBJECT_IVPTR(obj)[index]; 
   | 
||
| 
             if (val != Qundef) { 
   | 
||
| 
                 ROBJECT_IVPTR(obj)[index] = Qundef; 
   | 
||
- « Previous
 - 1
 - …
 - 4
 - 5
 - 6
 - Next »