Ticket #95: cage clean.patch

File cage clean.patch, 4.4 KB (added by jimmy, 6 years ago)
  • src/jit.c

     
    366366                    else if (flags & KEY_string_FLAG) 
    367367                        typ = 2; 
    368368 
    369                     if (n < NUM_REGISTERS) { 
    370                         if (!ru[typ].reg_count[n]++) 
    371                             ru[typ].reg_dir[n] |= PARROT_ARGDIR_IN; 
    372                     } 
     369                    if (n < NUM_REGISTERS && !ru[typ].reg_count[n]++) 
     370                        ru[typ].reg_dir[n] |= PARROT_ARGDIR_IN; 
    373371                } 
    374372                key = key_next(interp, key); 
    375373            } 
  • src/list.c

     
    652652    int do_sparse = (INTVAL)idx - (INTVAL)list->cap >= 10 * MAX_ITEMS; 
    653653 
    654654    if (list->item_type == enum_type_sized) { 
    655         items = list->items_per_chunk; 
    656         size = items * list->item_size; 
     655        do_sparse = 0; 
     656        items     = list->items_per_chunk; 
     657        size      = items * list->item_size; 
     658 
    657659        list->grow_policy = items == MAX_ITEMS ? 
    658660            enum_grow_fixed : enum_grow_mixed; 
    659         do_sparse = 0; 
    660661    } 
    661662    else if (do_sparse) { 
    662663        PARROT_ASSERT(where); 
    663664        /* don't add sparse chunk at start of list */ 
    664665        if (!list->n_chunks) { 
    665             list->grow_policy = enum_grow_fixed; 
     666            do_sparse = 0; 
     667            items     = MAX_ITEMS; 
     668 
    666669            /* if wee need more, the next allocation will allocate the rest */ 
    667             items = MAX_ITEMS; 
    668670            size = items * list->item_size; 
    669             do_sparse = 0; 
     671            list->grow_policy = enum_grow_fixed; 
    670672        } 
    671673        else { 
     674            /* allocate a dummy chunk holding many items virtually */ 
     675            size  = list->item_size; 
    672676            items = idx - list->cap - 1; 
     677 
    673678            /* round down this function will then be called again, to add the 
    674679             * final real chunk, with the rest of the needed size */ 
    675680            items &= ~(MAX_ITEMS - 1); 
    676681            list->grow_policy = enum_grow_mixed; 
    677             /* allocate a dummy chunk holding many items virtually */ 
    678             size = list->item_size; 
    679682        } 
    680683    } 
    681684    /* initial size for empty lists grow_policy is not yet known or was 
     
    752755    if (where) {                /* at end */ 
    753756        if (chunk) 
    754757            chunk->next = new_chunk; 
    755         list->last = new_chunk; 
    756758        if (!list->first) 
    757759            list->first = new_chunk; 
     760 
     761        list->last = new_chunk; 
    758762    } 
    759763    else { 
    760764        new_chunk->next = chunk; 
  • src/pmc/role.pmc

     
    296296*/ 
    297297 
    298298    VTABLE void add_attribute(STRING *name, PMC *type) { 
    299         Parrot_Role_attributes * const role          = PARROT_ROLE(SELF); 
    300         PMC         * const new_attribute = pmc_new(interp, enum_class_Hash); 
     299        Parrot_Role_attributes * const role  = PARROT_ROLE(SELF); 
     300        PMC           * const new_attribute = pmc_new(interp, enum_class_Hash); 
    301301 
    302302        /* Set name and type. */ 
    303303        VTABLE_set_string_keyed_str(interp, new_attribute, CONST_STRING(interp, "name"), name); 
     
    486486 
    487487    VTABLE STRING *get_string() { 
    488488        Parrot_Role_attributes * const role  = PARROT_ROLE(SELF); 
    489         PMC         * const _namespace = role->_namespace; 
     489        PMC               * const _namespace = role->_namespace; 
    490490 
    491491        if (!PMC_IS_NULL(_namespace)) { 
    492492            /* Call the 'get_name' method on the role's associated namespace 
     
    586586 
    587587    METHOD name(STRING *name :optional, int got_name :opt_flag) { 
    588588        Parrot_Role_attributes *role     = PARROT_ROLE(SELF); 
    589         STRING      *ret_name = NULL; 
     589        STRING                 *ret_name = NULL; 
    590590 
    591591        if (got_name) { 
    592592            /* We'll build a hash just containing the name, then give this to 
     
    613613*/ 
    614614 
    615615    METHOD get_namespace() { 
    616         Parrot_Role_attributes *role          = PARROT_ROLE(SELF); 
    617         PMC         *ret_namespace = role->_namespace; 
     616        Parrot_Role_attributes *role = PARROT_ROLE(SELF); 
     617        PMC           *ret_namespace = role->_namespace; 
    618618        RETURN(PMC *ret_namespace); 
    619619    } 
    620620