pike.git/
src/
array.c
Branch:
Tag:
Non-build tags
All tags
No tags
1997-10-06
1997-10-06 07:51:06 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>
0182920ca9c09f598710f6ab8310be8b884ebd7a (
30
lines) (+
22
/-
8
)
[
Show
|
Annotate
]
Branch:
7.9
explode optimized
Rev: src/array.c:1.16
1268:
s=str->str; end=s+str->len;
-
e=0;
+
-
+
ret=allocate_array(10);
+
ret->size=0;
+
init_memsearch(&searcher, del->str, del->len, str->len); while((tmp=memory_search(&searcher, s, end-s))) {
-
check_stack
(
1
);
-
push
_
string
(make_shared_binary_string(s, tmp-s));
+
if(ret->size == ret->malloced
_
size)
+
{
+
e=ret->size;
+
ret=resize_array
(
ret, ret->size * 2
);
+
ret->size=0;
+
}
+
+
ITEM(ret)[ret->size].u.
string
=
make_shared_binary_string(s, tmp-s)
;
+
ITEM(ret
)
[ret->size].type=T_STRING
;
+
ret->size++;
+
s=tmp+del->len;
-
e++;
+
}
-
check
_
stack
(
1
);
-
push_string
(make_shared_binary_string(s, end-s)
)
;
-
e++
;
-
ret
=aggregate_array(e)
;
+
+
if(ret->size == ret->malloced
_
size)
+
ret=resize_array
(
ret, ret->size * 2
);
+
+
ITEM(ret)[ret->size].u.
string
=
make_shared_binary_string(s, end-s);
+
ITEM(ret)[ret->size].type=T_STRING
;
+
ret
->size++
;
} ret->type_field=BIT_STRING; return ret;