pike.git / src / encode.c

version» Context lines:

pike.git/src/encode.c:805:    case T_MAPPING:    check_stack(2);    ref_push_mapping(val->u.mapping);    f_indices(1);       ref_push_mapping(val->u.mapping);    f_values(1);       if (data->canonic) {    INT32 *order; -  if (val->u.mapping->data->ind_types & ~(BIT_BASIC & ~BIT_TYPE)) { +  if (m_ind_types(val->u.mapping) & ~(BIT_BASIC & ~BIT_TYPE)) {    mapping_fix_type_field(val->u.mapping); -  if (val->u.mapping->data->ind_types & ~(BIT_BASIC & ~BIT_TYPE)) +  if (m_ind_types(val->u.mapping) & ~(BIT_BASIC & ~BIT_TYPE))    /* This doesn't let bignums through. That's necessary as    * long as they aren't handled deterministically by the    * sort function. */    /* They should be handled deterministically now - Hubbe */    Pike_error("Canonical encoding requires basic types in indices.\n");    }    order = get_switch_order(Pike_sp[-2].u.array);    order_array(Pike_sp[-2].u.array, order);    order_array(Pike_sp[-1].u.array, order);    free((char *) order);