/* Creates a new type object of this representation, and associates it with * the given HOW. */ static PMC * type_object_for(PARROT_INTERP, PMC *HOW) { /* Create new object instance. */ P6strInstance *obj = mem_allocate_zeroed_typed(P6strInstance); /* Build an STable. */ PMC *st_pmc = create_stable(interp, this_repr, HOW); STable *st = STABLE_STRUCT(st_pmc); /* Create type object and point it back at the STable. */ obj->common.stable = st_pmc; st->WHAT = wrap_object(interp, obj); PARROT_GC_WRITE_BARRIER(interp, st_pmc); /* Flag it as a type object. */ MARK_AS_TYPE_OBJECT(st->WHAT); return st->WHAT; }
/* Creates a new type object of this representation, and associates it with * the given HOW. */ static PMC *type_object_for(PARROT_INTERP, PMC *HOW) { /* Create new object instance. */ CStrInstance *obj = mem_allocate_zeroed_typed(CStrInstance); /* Build an STable. */ PMC *st_pmc = create_stable_func(interp, this_repr, HOW); STable *st = STABLE_STRUCT(st_pmc); /* Create REPR data structure and hang it off the STable. */ /* Don't need any REPR data yet. */ /*st->REPR_data = mem_allocate_zeroed_typed(CStrREPRData);*/ /* Create type object and point it back at the STable. */ obj->common.stable = st_pmc; st->WHAT = wrap_object_func(interp, obj); PARROT_GC_WRITE_BARRIER(interp, st_pmc); /* Flag it as a type object. */ MARK_AS_TYPE_OBJECT(st->WHAT); return st->WHAT; }
/* Creates a new type object of this representation, and associates it with * the given HOW. */ static PMC * type_object_for(PARROT_INTERP, PMC *HOW) { /* Create new object instance. */ P6numInstance *obj = mem_allocate_zeroed_typed(P6numInstance); P6numREPRData *repr_data = mem_allocate_zeroed_typed(P6numREPRData); /* Build an STable. */ PMC *st_pmc = create_stable(interp, this_repr, HOW); STable *st = STABLE_STRUCT(st_pmc); /* Set default bit width value in the REPR data and attach it to the * STable. */ repr_data->bits = sizeof(FLOATVAL)*8; st->REPR_data = repr_data; /* Create type object and point it back at the STable. */ obj->common.stable = st_pmc; st->WHAT = wrap_object(interp, obj); PARROT_GC_WRITE_BARRIER(interp, st_pmc); /* Flag it as a type object. */ MARK_AS_TYPE_OBJECT(st->WHAT); return st->WHAT; }