pike.git/
src/
builtin_functions.c
Branch:
Tag:
Non-build tags
All tags
No tags
2014-02-27
2014-02-27 15:05:18 by Per Hedbor <ph@opera.com>
c3396474629815940797fef27fa009cde105547d (
11
lines) (+
10
/-
1
)
[
Show
|
Annotate
]
Branch:
8.0
4x faster random_string.
826:
INT_TYPE len, e; get_all_args("random_string",args,"%+",&len); ret = begin_shared_string(len);
-
for(e=0;e<len;e++) ret->str[e] = DO_NOT_WARN((char)my_rand());
+
+
/* Note: Assumes pike_string->str is aligned on a 4 byte boundary
+
* (it is, currently)
+
*/
+
for(e=
3;e<len;e+=sizeof(INT32))
+
((unsigned INT32 *)(ret->str+e-3))[
0
] = DO_NOT_WARN(my_rand())
;
+
for(;
e<len;e++)
+
ret->str[e] = DO_NOT_WARN((char)my_rand());
+
pop_n_elems(args); push_string(end_shared_string(ret)); }