Commit 57330a94 authored by Guido van Rossum's avatar Guido van Rossum

Optimized stringitem.

parent 2b4c2fe5
...@@ -246,11 +246,23 @@ stringitem(a, i) ...@@ -246,11 +246,23 @@ stringitem(a, i)
stringobject *a; stringobject *a;
register int i; register int i;
{ {
/* This is optimized since this is a common operation! */
register stringobject *op;
if (i < 0 || i >= a->ob_size) { if (i < 0 || i >= a->ob_size) {
err_setstr(IndexError, "string index out of range"); err_setstr(IndexError, "string index out of range");
return NULL; return NULL;
} }
return stringslice(a, i, i+1); op = (stringobject *)
malloc(sizeof(stringobject) + sizeof(char));
if (op == NULL)
return err_nomem();
NEWREF(op);
op->ob_type = &Stringtype;
op->ob_size = 1;
op->ob_sval[0] = a->ob_sval[i];
op->ob_sval[1] = '\0';
return (object *) op;
} }
static int static int
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment