1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* string.c (rb_str_new2): NULL pointer check added.

* class.c (rb_define_module_under): should locate predefined
  module using rb_const_defined_at().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
matz 2002-01-07 05:27:01 +00:00
parent 6a100f3ce4
commit c9f4686694
5 changed files with 20 additions and 21 deletions

View file

@ -9,10 +9,19 @@ Sat Jan 5 13:18:11 2002 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp>
* range.c (range_member): beginning check was * range.c (range_member): beginning check was
wrong. [ruby-talk:30252] wrong. [ruby-talk:30252]
Sat Jan 5 03:07:34 2002 Yukihiro Matsumoto <matz@ruby-lang.org>
* string.c (rb_str_new2): NULL pointer check added.
Sat Jan 5 00:19:12 2002 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp> Sat Jan 5 00:19:12 2002 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp>
* parse.y (yycompile): strdup()'ed twice. * parse.y (yycompile): strdup()'ed twice.
Fri Jan 4 18:29:10 2002 Michal Rokos <m.rokos@sh.cvut.cz>
* class.c (rb_define_module_under): should locate predefined
module using rb_const_defined_at().
Fri Jan 4 17:23:49 2002 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp> Fri Jan 4 17:23:49 2002 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp>
* misc/ruby-mode.el (ruby-forward-string): forward a string. [new] * misc/ruby-mode.el (ruby-forward-string): forward a string. [new]

View file

@ -266,8 +266,8 @@ rb_define_module_under(outer, name)
ID id; ID id;
id = rb_intern(name); id = rb_intern(name);
if (rb_const_defined(outer, id)) { if (rb_const_defined_at(outer, id)) {
module = rb_const_get(rb_cObject, id); module = rb_const_get(outer, id);
if (TYPE(module) == T_MODULE) if (TYPE(module) == T_MODULE)
return module; return module;
rb_raise(rb_eTypeError, "%s::%s is not a module", rb_raise(rb_eTypeError, "%s::%s is not a module",

12
range.c
View file

@ -106,7 +106,7 @@ range_eq(range, obj)
} }
static int static int
r_eq(a,b) r_eq(a, b)
VALUE a, b; VALUE a, b;
{ {
VALUE r; VALUE r;
@ -119,22 +119,22 @@ r_eq(a,b)
} }
static int static int
r_lt(a,b) r_lt(a, b)
VALUE a, b; VALUE a, b;
{ {
VALUE r = rb_funcall(a, id_cmp, 1, b); VALUE r = rb_funcall(a, id_cmp, 1, b);
if (NUM2LONG(r) < 0) return Qtrue; if (rb_cmpint(r) < 0) return Qtrue;
return Qfalse; return Qfalse;
} }
static int static int
r_le(a,b) r_le(a, b)
VALUE a, b; VALUE a, b;
{ {
VALUE r = rb_funcall(a, id_cmp, 1, b); VALUE r = rb_funcall(a, id_cmp, 1, b);
if (NUM2LONG(r) <= 0) return Qtrue; if (rb_cmpint(r) <= 0) return Qtrue;
return Qfalse; return Qfalse;
} }
@ -144,7 +144,7 @@ r_gt(a,b)
{ {
VALUE r = rb_funcall(a, id_cmp, 1, b); VALUE r = rb_funcall(a, id_cmp, 1, b);
if (NUM2LONG(r) > 0) return Qtrue; if (rb_cmpint(r) > 0) return Qtrue;
return Qfalse; return Qfalse;
} }

13
regex.c
View file

@ -2377,19 +2377,6 @@ re_compile_pattern(pattern, size, bufp)
if (*laststart == anychar_repeat) { if (*laststart == anychar_repeat) {
bufp->options |= RE_OPTIMIZE_ANCHOR; bufp->options |= RE_OPTIMIZE_ANCHOR;
} }
else if (*laststart == on_failure_jump) {
int mcnt;
laststart++;
EXTRACT_NUMBER_AND_INCR(mcnt, laststart);
if (*laststart == charset || *laststart == charset_not) {
p0 = laststart;
mcnt = *++p0;
p0 += mcnt+1;
mcnt = EXTRACT_UNSIGNED_AND_INCR(p0);
p0 += 8*mcnt;
}
}
} }
bufp->used = b - bufp->buffer; bufp->used = b - bufp->buffer;

View file

@ -80,6 +80,9 @@ VALUE
rb_str_new2(ptr) rb_str_new2(ptr)
const char *ptr; const char *ptr;
{ {
if (!ptr) {
rb_raise(rb_eArgError, "NULL pointer given");
}
return rb_str_new(ptr, strlen(ptr)); return rb_str_new(ptr, strlen(ptr));
} }