summaryrefslogtreecommitdiffstats
path: root/string.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-10-02 03:49:15 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-10-02 03:49:15 +0000
commitfc05c485445330312060918aa729f8041e2d17ba (patch)
tree883110b737f81f4ab45efada98a26110bed59f8a /string.c
parent4d6a6e82b4421dee488aa33a40466b5632730943 (diff)
downloadruby-fc05c485445330312060918aa729f8041e2d17ba.tar.gz
ruby-fc05c485445330312060918aa729f8041e2d17ba.tar.xz
ruby-fc05c485445330312060918aa729f8041e2d17ba.zip
* string.c (rb_str_sum): check was done with false pointer.
[ruby-dev:24383] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@6978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'string.c')
-rw-r--r--string.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/string.c b/string.c
index 6f5243418..4d787e49b 100644
--- a/string.c
+++ b/string.c
@@ -4405,7 +4405,7 @@ rb_str_sum(argc, argv, str)
{
VALUE vbits;
int bits;
- char *p, *pend;
+ char *ptr, *p, *pend;
long len;
if (rb_scan_args(argc, argv, "01", &vbits) == 0) {
@@ -4413,7 +4413,7 @@ rb_str_sum(argc, argv, str)
}
else bits = NUM2INT(vbits);
- p = RSTRING(str)->ptr;
+ ptr = p = RSTRING(str)->ptr;
len = RSTRING(str)->len;
pend = p + len;
if (bits > sizeof(long)*CHAR_BIT) {
@@ -4424,7 +4424,7 @@ rb_str_sum(argc, argv, str)
mod = rb_funcall(mod, '-', 1, INT2FIX(1));
while (p < pend) {
- str_mod_check(str, p, len);
+ str_mod_check(str, ptr, len);
res = rb_funcall(res, '+', 1, INT2FIX((unsigned int)*p));
p++;
}
@@ -4439,7 +4439,7 @@ rb_str_sum(argc, argv, str)
mod = -1;
}
while (p < pend) {
- str_mod_check(str, p, len);
+ str_mod_check(str, ptr, len);
res += (unsigned int)*p;
p++;
}