mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* variable.c (rb_obj_remove_instance_variable): raise NameError if
specified instance variable is not defined. * variable.c (generic_ivar_remove): modified to check ivar existence. * class.c (rb_singleton_class): wrong condition; was creating unnecessary singleton class. * numeric.c (int_step): step may be a float less than 1. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_6@2349 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									34159dac1c
								
							
						
					
					
						commit
						daadb8bd53
					
				
					 9 changed files with 50 additions and 25 deletions
				
			
		
							
								
								
									
										18
									
								
								ChangeLog
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								ChangeLog
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,12 +1,30 @@
 | 
			
		|||
<<<<<<< ChangeLog
 | 
			
		||||
Wed Apr 10 17:30:19 2002  Yukihiro Matsumoto  <matz@ruby-lang.org>
 | 
			
		||||
 | 
			
		||||
	* variable.c (rb_obj_remove_instance_variable): raise NameError if
 | 
			
		||||
	  specified instance variable is not defined.
 | 
			
		||||
 | 
			
		||||
	* variable.c (generic_ivar_remove): modified to check ivar
 | 
			
		||||
	  existence.
 | 
			
		||||
 | 
			
		||||
Wed Apr 10 14:16:45 2002  Nobuyoshi Nakada  <nobu.nakada@nifty.ne.jp>
 | 
			
		||||
 | 
			
		||||
	* misc/ruby-mode.el (ruby-font-lock-keywords): fontify symbols for
 | 
			
		||||
	  unary operators and aset.
 | 
			
		||||
 | 
			
		||||
Sat Apr  6 02:04:49 2002  Guy Decoux  <ts@moulon.inra.fr>
 | 
			
		||||
 | 
			
		||||
	* class.c (rb_singleton_class): wrong condition; was creating
 | 
			
		||||
	  unnecessary singleton class.
 | 
			
		||||
 | 
			
		||||
Thu Apr  4 15:45:12 2002  WATANABE Hirofumi  <eban@ruby-lang.org>
 | 
			
		||||
 | 
			
		||||
	* parse.y: avoid bison 1.34 warnings. add `;' at the end of a rule.
 | 
			
		||||
 | 
			
		||||
Thu Apr  4 01:08:23 2002  Yukihiro Matsumoto  <matz@ruby-lang.org>
 | 
			
		||||
 | 
			
		||||
	* numeric.c (int_step): step may be a float less than 1.
 | 
			
		||||
 | 
			
		||||
Wed Apr  3 01:54:10 2002  Nobuyoshi Nakada  <nobu.nakada@nifty.ne.jp>
 | 
			
		||||
 | 
			
		||||
	* ext/extmk.rb.in (enable_config): follow lib/mkmf.rb.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,7 +13,7 @@ AUTOCONF = autoconf
 | 
			
		|||
 | 
			
		||||
prefix = @prefix@
 | 
			
		||||
CFLAGS = @CFLAGS@
 | 
			
		||||
CPPFLAGS = -I. -I$(srcdir) -I@includedir@
 | 
			
		||||
CPPFLAGS = -I. -I$(srcdir)
 | 
			
		||||
LDFLAGS = @STATIC@ $(CFLAGS) @LDFLAGS@
 | 
			
		||||
XLDFLAGS = @XLDFLAGS@
 | 
			
		||||
EXTLIBS = 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								class.c
									
										
									
									
									
								
							
							
						
						
									
										4
									
								
								class.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -626,7 +626,9 @@ rb_singleton_class(obj)
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    DEFER_INTS;
 | 
			
		||||
    if (FL_TEST(RBASIC(obj)->klass, FL_SINGLETON)) {
 | 
			
		||||
    if (FL_TEST(RBASIC(obj)->klass, FL_SINGLETON) &&
 | 
			
		||||
       ((BUILTIN_TYPE(obj) != T_CLASS && BUILTIN_TYPE(obj) != T_MODULE) ||
 | 
			
		||||
       rb_iv_get(RBASIC(obj)->klass, "__attached__") == obj)) {
 | 
			
		||||
	klass = RBASIC(obj)->klass;
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -75,8 +75,8 @@ if /mswin32/ =~ RUBY_PLATFORM
 | 
			
		|||
else
 | 
			
		||||
  OUTFLAG = '-o '
 | 
			
		||||
end
 | 
			
		||||
LINK = "@CC@ #{OUTFLAG}conftest -I#$topdir -I#$top_srcdir #{CFLAGS} -I#$includedir @LDFLAGS@ %s %s %s conftest.c %s %s @LIBS@"
 | 
			
		||||
CPP = "@CPP@ @CPPFLAGS@ -I#$topdir -I#$top_srcdir #{CFLAGS} -I#$includedir %s %s %s conftest.c"
 | 
			
		||||
LINK = "@CC@ #{OUTFLAG}conftest -I#$topdir -I#$top_srcdir #{CFLAGS} @LDFLAGS@ %s %s %s conftest.c %s %s @LIBS@"
 | 
			
		||||
CPP = "@CPP@ @CPPFLAGS@ -I#$topdir -I#$top_srcdir #{CFLAGS} %s %s %s conftest.c"
 | 
			
		||||
 | 
			
		||||
$log = open('extmk.log', 'w')
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -416,7 +416,7 @@ hdrdir = #{$top_srcdir}
 | 
			
		|||
CC = @CC@
 | 
			
		||||
 | 
			
		||||
CFLAGS   = %s #{CFLAGS} #$CFLAGS
 | 
			
		||||
CPPFLAGS = -I$(topdir) -I$(hdrdir) -I@includedir@ %s #$CPPFLAGS
 | 
			
		||||
CPPFLAGS = -I$(topdir) -I$(hdrdir) %s #$CPPFLAGS
 | 
			
		||||
DLDFLAGS = #$DLDFLAGS #$LDFLAGS
 | 
			
		||||
LDSHARED = @LDSHARED@ #{defflag}
 | 
			
		||||
", if $static then "" else "@CCDLFLAGS@" end, $defs.join(" ")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -134,6 +134,7 @@ class CGI
 | 
			
		|||
      end
 | 
			
		||||
 | 
			
		||||
      def update
 | 
			
		||||
	return unless @hash
 | 
			
		||||
	@f.rewind
 | 
			
		||||
	for k,v in @hash
 | 
			
		||||
	  @f.printf "%s=%s\n", CGI::escape(k), CGI::escape(v)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -64,8 +64,8 @@ if /mswin32/ =~ RUBY_PLATFORM
 | 
			
		|||
else
 | 
			
		||||
  OUTFLAG = '-o '
 | 
			
		||||
end
 | 
			
		||||
LINK = "#{CONFIG['CC']} #{OUTFLAG}conftest -I#{$hdrdir} #{CFLAGS} -I#{CONFIG['includedir']} %s %s #{CONFIG['LDFLAGS']} %s conftest.c %s %s #{CONFIG['LIBS']}"
 | 
			
		||||
CPP = "#{CONFIG['CPP']} -E %s -I#{$hdrdir} #{CFLAGS} -I#{CONFIG['includedir']} %s %s conftest.c"
 | 
			
		||||
LINK = "#{CONFIG['CC']} #{OUTFLAG}conftest -I#{$hdrdir} #{CFLAGS} %s %s #{CONFIG['LDFLAGS']} %s conftest.c %s %s #{CONFIG['LIBS']}"
 | 
			
		||||
CPP = "#{CONFIG['CPP']} -E %s -I#{$hdrdir} #{CFLAGS} %s %s conftest.c"
 | 
			
		||||
 | 
			
		||||
def rm_f(*files)
 | 
			
		||||
  targets = []
 | 
			
		||||
| 
						 | 
				
			
			@ -454,7 +454,7 @@ VPATH = $(srcdir)
 | 
			
		|||
CC = #{CONFIG["CC"]}
 | 
			
		||||
 | 
			
		||||
CFLAGS   = #{CONFIG["CCDLFLAGS"]} #{CFLAGS} #{$CFLAGS}
 | 
			
		||||
CPPFLAGS = -I. -I$(hdrdir) -I$(srcdir) -I#{CONFIG["includedir"]} #{$defs.join(" ")} #{CONFIG["CPPFLAGS"]} #{$CPPFLAGS}
 | 
			
		||||
CPPFLAGS = -I. -I$(hdrdir) -I$(srcdir) #{$defs.join(" ")} #{CONFIG["CPPFLAGS"]} #{$CPPFLAGS}
 | 
			
		||||
CXXFLAGS = $(CFLAGS)
 | 
			
		||||
DLDFLAGS = #{$DLDFLAGS} #{$LDFLAGS}
 | 
			
		||||
LDSHARED = #{CONFIG["LDSHARED"]} #{defflag}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1411,7 +1411,7 @@ int_step(from, to, step)
 | 
			
		|||
    VALUE i = from;
 | 
			
		||||
    ID cmp;
 | 
			
		||||
 | 
			
		||||
    if (NUM2INT(step) == 0) {
 | 
			
		||||
    if (rb_equal(step, INT2FIX(0))) {
 | 
			
		||||
	rb_raise(rb_eArgError, "step cannot be 0");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										32
									
								
								variable.c
									
										
									
									
									
								
							
							
						
						
									
										32
									
								
								variable.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -254,8 +254,7 @@ rb_autoload_id(id, filename)
 | 
			
		|||
{
 | 
			
		||||
    rb_secure(4);
 | 
			
		||||
    if (!rb_is_const_id(id)) {
 | 
			
		||||
	rb_raise(rb_eNameError, "autoload must be constant name",
 | 
			
		||||
		 rb_id2name(id));
 | 
			
		||||
	rb_raise(rb_eNameError, "autoload must be constant name");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (!autoload_tbl) {
 | 
			
		||||
| 
						 | 
				
			
			@ -812,22 +811,23 @@ generic_ivar_defined(obj, id)
 | 
			
		|||
    return Qfalse;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static VALUE
 | 
			
		||||
generic_ivar_remove(obj, id)
 | 
			
		||||
static int
 | 
			
		||||
generic_ivar_remove(obj, id, valp)
 | 
			
		||||
    VALUE obj;
 | 
			
		||||
    ID id;
 | 
			
		||||
    VALUE *valp;
 | 
			
		||||
{
 | 
			
		||||
    st_table *tbl;
 | 
			
		||||
    VALUE val;
 | 
			
		||||
    int status;
 | 
			
		||||
 | 
			
		||||
    if (!generic_iv_tbl) return Qnil;
 | 
			
		||||
    if (!st_lookup(generic_iv_tbl, obj, &tbl)) return Qnil;
 | 
			
		||||
    st_delete(tbl, &id, &val);
 | 
			
		||||
    if (!generic_iv_tbl) return 0;
 | 
			
		||||
    if (!st_lookup(generic_iv_tbl, obj, &tbl)) return 0;
 | 
			
		||||
    status = st_delete(tbl, &id, valp);
 | 
			
		||||
    if (tbl->num_entries == 0) {
 | 
			
		||||
	st_delete(generic_iv_tbl, &obj, &tbl);
 | 
			
		||||
	st_free_table(tbl);
 | 
			
		||||
    }
 | 
			
		||||
    return val;
 | 
			
		||||
    return status;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
| 
						 | 
				
			
			@ -1020,16 +1020,20 @@ rb_obj_remove_instance_variable(obj, name)
 | 
			
		|||
      case T_OBJECT:
 | 
			
		||||
      case T_CLASS:
 | 
			
		||||
      case T_MODULE:
 | 
			
		||||
	if (ROBJECT(obj)->iv_tbl) {
 | 
			
		||||
	    st_delete(ROBJECT(obj)->iv_tbl, &id, &val);
 | 
			
		||||
	if (ROBJECT(obj)->iv_tbl && st_delete(ROBJECT(obj)->iv_tbl, &id, &val)) {
 | 
			
		||||
	    return val;
 | 
			
		||||
	}
 | 
			
		||||
	break;
 | 
			
		||||
      default:
 | 
			
		||||
	if (FL_TEST(obj, FL_EXIVAR) || rb_special_const_p(obj))
 | 
			
		||||
	    return generic_ivar_remove(obj, id);
 | 
			
		||||
	if (FL_TEST(obj, FL_EXIVAR) || rb_special_const_p(obj)) {
 | 
			
		||||
	    if (generic_ivar_remove(obj, id, &val)) {
 | 
			
		||||
		return val;
 | 
			
		||||
	    }
 | 
			
		||||
	}
 | 
			
		||||
	break;
 | 
			
		||||
    }
 | 
			
		||||
    return val;
 | 
			
		||||
    rb_raise(rb_eNameError, "instance variable %s not defined", rb_id2name(id));
 | 
			
		||||
    return Qnil;		/* not reached */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
#define RUBY_VERSION "1.6.7"
 | 
			
		||||
#define RUBY_RELEASE_DATE "2002-04-04"
 | 
			
		||||
#define RUBY_RELEASE_DATE "2002-04-10"
 | 
			
		||||
#define RUBY_VERSION_CODE 167
 | 
			
		||||
#define RUBY_RELEASE_CODE 20020404
 | 
			
		||||
#define RUBY_RELEASE_CODE 20020410
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue