mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	revert r52336 (commit miss)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52337 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									106f033b89
								
							
						
					
					
						commit
						56eee285be
					
				
					 6 changed files with 26 additions and 33 deletions
				
			
		| 
						 | 
				
			
			@ -1,7 +1,3 @@
 | 
			
		|||
Thu Oct 29 14:07:54 2015  Koichi Sasada  <ko1@atdot.net>
 | 
			
		||||
 | 
			
		||||
	* gc.c (gc_mark_ptr): remove debug code for #11244.
 | 
			
		||||
 | 
			
		||||
Thu Oct 29 10:08:33 2015  Eric Wong  <e@80x24.org>
 | 
			
		||||
 | 
			
		||||
	* variable.c (struct autoload_state): usable as wait-queue head
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										8
									
								
								dir.c
									
										
									
									
									
								
							
							
						
						
									
										8
									
								
								dir.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -674,7 +674,7 @@ dir_path(VALUE dir)
 | 
			
		|||
static int
 | 
			
		||||
fundamental_encoding_p(rb_encoding *enc)
 | 
			
		||||
{
 | 
			
		||||
    switch (enc_to_index(enc)) {
 | 
			
		||||
    switch (rb_enc_to_index(enc)) {
 | 
			
		||||
      case ENCINDEX_ASCII:
 | 
			
		||||
      case ENCINDEX_US_ASCII:
 | 
			
		||||
      case ENCINDEX_UTF_8:
 | 
			
		||||
| 
						 | 
				
			
			@ -1010,7 +1010,7 @@ rb_dir_getwd(void)
 | 
			
		|||
{
 | 
			
		||||
    char *path;
 | 
			
		||||
    VALUE cwd;
 | 
			
		||||
    int fsenc = enc_to_index(rb_filesystem_encoding());
 | 
			
		||||
    int fsenc = rb_enc_to_index(rb_filesystem_encoding());
 | 
			
		||||
 | 
			
		||||
    if (fsenc == ENCINDEX_US_ASCII) fsenc = ENCINDEX_ASCII;
 | 
			
		||||
    path = my_getcwd();
 | 
			
		||||
| 
						 | 
				
			
			@ -2139,9 +2139,9 @@ push_glob(VALUE ary, VALUE str, int flags)
 | 
			
		|||
#ifdef __APPLE__
 | 
			
		||||
    str = rb_str_encode_ospath(str);
 | 
			
		||||
#endif
 | 
			
		||||
    if (enc_to_index(enc) == ENCINDEX_US_ASCII)
 | 
			
		||||
    if (rb_enc_to_index(enc) == ENCINDEX_US_ASCII)
 | 
			
		||||
	enc = rb_filesystem_encoding();
 | 
			
		||||
    if (enc_to_index(enc) == ENCINDEX_US_ASCII)
 | 
			
		||||
    if (rb_enc_to_index(enc) == ENCINDEX_US_ASCII)
 | 
			
		||||
	enc = rb_ascii8bit_encoding();
 | 
			
		||||
    flags |= GLOB_VERBOSE;
 | 
			
		||||
    args.glob.func = push_pattern;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										22
									
								
								encindex.h
									
										
									
									
									
								
							
							
						
						
									
										22
									
								
								encindex.h
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -57,28 +57,6 @@ enum ruby_preserved_encindex {
 | 
			
		|||
#define rb_utf8_encindex()      RUBY_ENCINDEX_UTF_8
 | 
			
		||||
#define rb_usascii_encindex()   RUBY_ENCINDEX_US_ASCII
 | 
			
		||||
 | 
			
		||||
#ifdef RUBY_ENCODING_H
 | 
			
		||||
#define ENC_INDEX_MASK (~(~0U<<24))
 | 
			
		||||
#define ENC_TO_ENCINDEX(enc) (int)((enc)->ruby_encoding_index & ENC_INDEX_MASK)
 | 
			
		||||
 | 
			
		||||
static inline int
 | 
			
		||||
enc_to_index(rb_encoding *enc)
 | 
			
		||||
{
 | 
			
		||||
    return enc ? ENC_TO_ENCINDEX(enc) : 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline int
 | 
			
		||||
str_enc_get_index(VALUE str)
 | 
			
		||||
{
 | 
			
		||||
    int i = ENCODING_GET_INLINED(str);
 | 
			
		||||
    if (i == ENCODING_INLINE_MAX) {
 | 
			
		||||
	VALUE iv = rb_ivar_get(str, rb_id_encoding());
 | 
			
		||||
	i = NUM2INT(iv);
 | 
			
		||||
    }
 | 
			
		||||
    return i;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__cplusplus)
 | 
			
		||||
#if 0
 | 
			
		||||
{ /* satisfy cc-mode */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										12
									
								
								encoding.c
									
										
									
									
									
								
							
							
						
						
									
										12
									
								
								encoding.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -52,7 +52,9 @@ static struct {
 | 
			
		|||
} enc_table;
 | 
			
		||||
 | 
			
		||||
#define ENC_DUMMY_FLAG (1<<24)
 | 
			
		||||
#define ENC_INDEX_MASK (~(~0U<<24))
 | 
			
		||||
 | 
			
		||||
#define ENC_TO_ENCINDEX(enc) (int)((enc)->ruby_encoding_index & ENC_INDEX_MASK)
 | 
			
		||||
#define ENC_DUMMY_P(enc) ((enc)->ruby_encoding_index & ENC_DUMMY_FLAG)
 | 
			
		||||
#define ENC_SET_DUMMY(enc) ((enc)->ruby_encoding_index |= ENC_DUMMY_FLAG)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -110,7 +112,7 @@ rb_enc_from_encoding(rb_encoding *encoding)
 | 
			
		|||
int
 | 
			
		||||
rb_enc_to_index(rb_encoding *enc)
 | 
			
		||||
{
 | 
			
		||||
    return enc_to_index(enc);
 | 
			
		||||
    return enc ? ENC_TO_ENCINDEX(enc) : 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
| 
						 | 
				
			
			@ -756,7 +758,13 @@ rb_enc_get_index(VALUE obj)
 | 
			
		|||
      default:
 | 
			
		||||
      case T_STRING:
 | 
			
		||||
      case T_REGEXP:
 | 
			
		||||
	i = str_enc_get_index(obj);
 | 
			
		||||
	i = ENCODING_GET_INLINED(obj);
 | 
			
		||||
	if (i == ENCODING_INLINE_MAX) {
 | 
			
		||||
	    VALUE iv;
 | 
			
		||||
 | 
			
		||||
	    iv = rb_ivar_get(obj, rb_id_encoding());
 | 
			
		||||
	    i = NUM2INT(iv);
 | 
			
		||||
	}
 | 
			
		||||
	break;
 | 
			
		||||
      case T_FILE:
 | 
			
		||||
	tmp = rb_funcallv(obj, rb_intern("internal_encoding"), 0, 0);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										11
									
								
								gc.c
									
										
									
									
									
								
							
							
						
						
									
										11
									
								
								gc.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -4235,6 +4235,17 @@ static void
 | 
			
		|||
gc_mark_ptr(rb_objspace_t *objspace, VALUE obj)
 | 
			
		||||
{
 | 
			
		||||
    if (LIKELY(objspace->mark_func_data == NULL)) {
 | 
			
		||||
	/* check code for Bug #11244 */
 | 
			
		||||
	if (BUILTIN_TYPE(obj) == T_NONE) {
 | 
			
		||||
	    if (objspace->rgengc.parent_object) {
 | 
			
		||||
		rb_bug("gc_mark_ptr: obj is %s (parent: %s)", obj_info(obj),
 | 
			
		||||
		       obj_info(objspace->rgengc.parent_object));
 | 
			
		||||
	    }
 | 
			
		||||
	    else {
 | 
			
		||||
		rb_bug("gc_mark_ptr: obj is %s (parent is not old)", obj_info(obj));
 | 
			
		||||
	    }
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	rgengc_check_relation(objspace, obj);
 | 
			
		||||
	if (!gc_mark_set(objspace, obj)) return; /* already marked */
 | 
			
		||||
	gc_aging(objspace, obj);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								string.c
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								string.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1617,7 +1617,7 @@ rb_str_plus(VALUE str1, VALUE str2)
 | 
			
		|||
    TERM_FILL(&ptr3[len1+len2], rb_enc_mbminlen(enc));
 | 
			
		||||
 | 
			
		||||
    FL_SET_RAW(str3, OBJ_TAINTED_RAW(str1) | OBJ_TAINTED_RAW(str2));
 | 
			
		||||
    ENCODING_CODERANGE_SET(str3, enc_to_index(enc),
 | 
			
		||||
    ENCODING_CODERANGE_SET(str3, rb_enc_to_index(enc),
 | 
			
		||||
			   ENC_CODERANGE_AND(ENC_CODERANGE(str1), ENC_CODERANGE(str2)));
 | 
			
		||||
    RB_GC_GUARD(str1);
 | 
			
		||||
    RB_GC_GUARD(str2);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue