Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/sbi/src/builtin/bi_string.c

    r051bc69a rc5cb943d  
    116116        rdata_var_t *self_value_var;
    117117        const char *str;
     118        const char *slice;
    118119        size_t str_l;
    119120
     
    125126
    126127        int rc;
    127 
    128         rdata_string_t *rstring;
    129         rdata_var_t *rvar;
    130         rdata_value_t *rval;
    131         rdata_item_t *ritem;
    132 
    133         run_proc_ar_t *proc_ar;
    134128
    135129        /* Extract self.Value */
     
    165159            start, length, str);
    166160#endif
    167         /* Construct return value. */
    168         rstring = rdata_string_new();
    169         rstring->value = os_str_aslice(str, start, length);
     161        slice = os_str_aslice(str, start, length);
    170162
    171         rvar = rdata_var_new(vc_string);
    172         rvar->u.string_v = rstring;
    173         rval = rdata_value_new();
    174         rval->var = rvar;
    175 
    176         ritem = rdata_item_new(ic_value);
    177         ritem->u.value = rval;
    178 
    179         proc_ar = run_get_current_proc_ar(run);
    180         proc_ar->retval = ritem;
     163        /* Ownership of slice is transferred. */
     164        builtin_return_string(run, slice);
    181165}
Note: See TracChangeset for help on using the changeset viewer.