objstr: *strip(): If nothing is stripped, don't create dup string.

This commit is contained in:
Paul Sokolovsky
2014-05-30 03:11:44 +03:00
parent bcdffe53c6
commit 8827682b35
2 changed files with 10 additions and 0 deletions

View File

@@ -691,6 +691,12 @@ STATIC mp_obj_t str_uni_strip(int type, uint n_args, const mp_obj_t *args) {
assert(last_good_char_pos >= first_good_char_pos);
//+1 to accomodate the last character
machine_uint_t stripped_len = last_good_char_pos - first_good_char_pos + 1;
if (stripped_len == orig_str_len) {
// If nothing was stripped, don't bother to dup original string
// TODO: watch out for this case when we'll get to bytearray.strip()
assert(first_good_char_pos == 0);
return args[0];
}
return mp_obj_new_str_of_type(self_type, orig_str + first_good_char_pos, stripped_len);
}