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

merge revision(s) 13587:

* gc.c (id2ref): valid id should not refer T_VALUE nor T_ICLASS.
	  [ruby-dev:31911]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@16827 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
shyouhei 2008-06-05 03:23:32 +00:00
parent 1ecb29fbf8
commit eca461acaa
3 changed files with 12 additions and 5 deletions

View file

@ -1,3 +1,8 @@
Thu Jun 5 12:22:28 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
* gc.c (id2ref): valid id should not refer T_VALUE nor T_ICLASS.
[ruby-dev:31911]
Wed Jun 4 16:41:19 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
* Makefile.in (ext/extinit.o): use $(OUTFLAG) as well as other

4
gc.c
View file

@ -1922,6 +1922,7 @@ id2ref(obj, objid)
VALUE obj, objid;
{
unsigned long ptr, p0;
int type;
rb_secure(4);
p0 = ptr = NUM2ULONG(objid);
@ -1938,7 +1939,8 @@ id2ref(obj, objid)
return ID2SYM(symid);
}
if (!is_pointer_to_heap((void *)ptr)|| BUILTIN_TYPE(ptr) >= T_BLKTAG) {
if (!is_pointer_to_heap((void *)ptr)||
(type = BUILTIN_TYPE(ptr)) >= T_BLKTAG || type == T_ICLASS) {
rb_raise(rb_eRangeError, "0x%lx is not id value", p0);
}
if (BUILTIN_TYPE(ptr) == 0 || RBASIC(ptr)->klass == 0) {

View file

@ -1,15 +1,15 @@
#define RUBY_VERSION "1.8.6"
#define RUBY_RELEASE_DATE "2008-06-04"
#define RUBY_RELEASE_DATE "2008-06-05"
#define RUBY_VERSION_CODE 186
#define RUBY_RELEASE_CODE 20080604
#define RUBY_PATCHLEVEL 125
#define RUBY_RELEASE_CODE 20080605
#define RUBY_PATCHLEVEL 126
#define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 8
#define RUBY_VERSION_TEENY 6
#define RUBY_RELEASE_YEAR 2008
#define RUBY_RELEASE_MONTH 6
#define RUBY_RELEASE_DAY 4
#define RUBY_RELEASE_DAY 5
#ifdef RUBY_EXTERN
RUBY_EXTERN const char ruby_version[];