summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-01-07 05:27:01 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-01-07 05:27:01 +0000
commit7e077c0a443eadc51e3d1b16acb9f745e248ac99 (patch)
treefcfa758386e8c8c86dc1067aaa0169e23e1bf70f
parent73728e5e8c6028c32253c656f87a6581d60417f7 (diff)
* 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/branches/ruby_1_6@1969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog9
-rw-r--r--class.c4
-rw-r--r--regex.c13
-rw-r--r--string.c3
4 files changed, 14 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index d9e5329b0a..9c3e87f883 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,10 +4,19 @@ Mon Jan 7 12:38:47 2002 Tanaka Akira <akr@m17n.org>
fractional_seconds to specify a number of digits of
fractional part of the time.
+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>
* 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>
* misc/ruby-mode.el (ruby-forward-string): forward a string. [new]
diff --git a/class.c b/class.c
index ff61ab0fec..965359e8de 100644
--- a/class.c
+++ b/class.c
@@ -246,8 +246,8 @@ rb_define_module_under(outer, name)
ID id;
id = rb_intern(name);
- if (rb_const_defined(outer, id)) {
- module = rb_const_get(rb_cObject, id);
+ if (rb_const_defined_at(outer, id)) {
+ module = rb_const_get(outer, id);
if (TYPE(module) == T_MODULE)
return module;
rb_raise(rb_eTypeError, "%s::%s is not a module",
diff --git a/regex.c b/regex.c
index 04c56c1264..3770648e38 100644
--- a/regex.c
+++ b/regex.c
@@ -2381,19 +2381,6 @@ re_compile_pattern(pattern, size, bufp)
if (*laststart == anychar_repeat) {
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;
diff --git a/string.c b/string.c
index 823bf651c1..8a784b2217 100644
--- a/string.c
+++ b/string.c
@@ -54,6 +54,9 @@ VALUE
rb_str_new2(ptr)
const char *ptr;
{
+ if (!ptr) {
+ rb_raise(rb_eArgError, "NULL pointer given");
+ }
return rb_str_new(ptr, strlen(ptr));
}