mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	rename li_table->ar_table (and related names).
* internal.h: rename the following names:
  * li_table -> ar_table. "li" means linear (from linear search),
    but we use the word "array" (from data layout).
  * RHASH_ARRAY -> RHASH_AR_TABLE. AR_TABLE is more clear.
  * rb_hash_array_* -> rb_hash_ar_table_*.
  * RHASH_TABLE_P() -> RHASH_ST_TABLE_P(). more clear.
  * RHASH_CLEAR() -> RHASH_ST_CLEAR().
* hash.c: rename "linear_" prefix functions to "ar_" prefix.
* hash.c (linear_init_table): rename to ar_alloc_table.
* debug_counter.h: rename obj_hash_array to obj_hash_ar.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
			
			
This commit is contained in:
		
							parent
							
								
									bd78a07f46
								
							
						
					
					
						commit
						e4c79d0d10
					
				
					 6 changed files with 332 additions and 331 deletions
				
			
		
							
								
								
									
										4
									
								
								array.c
									
										
									
									
									
								
							
							
						
						
									
										4
									
								
								array.c
									
										
									
									
									
								
							|  | @ -4431,10 +4431,10 @@ static inline void | |||
| ary_recycle_hash(VALUE hash) | ||||
| { | ||||
|     assert(RBASIC_CLASS(hash) == 0); | ||||
|     if (RHASH_TABLE_P(hash)) { | ||||
|     if (RHASH_ST_TABLE_P(hash)) { | ||||
|         st_table *tbl = RHASH_ST_TABLE(hash); | ||||
| 	st_free_table(tbl); | ||||
|         RHASH_CLEAR(hash); | ||||
|         RHASH_ST_CLEAR(hash); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -181,7 +181,7 @@ RB_DEBUG_COUNTER(obj_hash_empty) | |||
| RB_DEBUG_COUNTER(obj_hash_under4) | ||||
| RB_DEBUG_COUNTER(obj_hash_ge4) | ||||
| RB_DEBUG_COUNTER(obj_hash_ge8) | ||||
| RB_DEBUG_COUNTER(obj_hash_array) | ||||
| RB_DEBUG_COUNTER(obj_hash_ar) | ||||
| RB_DEBUG_COUNTER(obj_hash_st) | ||||
| RB_DEBUG_COUNTER(obj_hash_transient) | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										20
									
								
								gc.c
									
										
									
									
									
								
							
							
						
						
									
										20
									
								
								gc.c
									
										
									
									
									
								
							|  | @ -2271,15 +2271,15 @@ obj_free(rb_objspace_t *objspace, VALUE obj) | |||
|             RB_DEBUG_COUNTER_INC(obj_hash_empty); | ||||
|         } | ||||
| 
 | ||||
|         if (RHASH_ARRAY_P(obj)) { | ||||
|             RB_DEBUG_COUNTER_INC(obj_hash_array); | ||||
|         if (RHASH_AR_TABLE_P(obj)) { | ||||
|             RB_DEBUG_COUNTER_INC(obj_hash_ar); | ||||
|         } | ||||
|         else { | ||||
|             RB_DEBUG_COUNTER_INC(obj_hash_st); | ||||
|         } | ||||
| #endif | ||||
|         if (/* RHASH_ARRAY_P(obj) */ !FL_TEST_RAW(obj, RHASH_ST_TABLE_FLAG)) { | ||||
|             li_table *tab = RHASH(obj)->as.li; | ||||
|         if (/* RHASH_AR_TABLE_P(obj) */ !FL_TEST_RAW(obj, RHASH_ST_TABLE_FLAG)) { | ||||
|             ar_table *tab = RHASH(obj)->as.ar; | ||||
| 
 | ||||
|             if (tab) { | ||||
|                 if (RHASH_TRANSIENT_P(obj)) { | ||||
|  | @ -2291,7 +2291,7 @@ obj_free(rb_objspace_t *objspace, VALUE obj) | |||
|             } | ||||
|         } | ||||
|         else { | ||||
|             GC_ASSERT(RHASH_TABLE_P(obj)); | ||||
|             GC_ASSERT(RHASH_ST_TABLE_P(obj)); | ||||
|             st_free_table(RHASH(obj)->as.st); | ||||
|         } | ||||
| 	break; | ||||
|  | @ -3355,8 +3355,8 @@ obj_memsize_of(VALUE obj, int use_all_types) | |||
| 	size += rb_ary_memsize(obj); | ||||
| 	break; | ||||
|       case T_HASH: | ||||
|         if (RHASH_ARRAY_P(obj)) { | ||||
|             size += sizeof(li_table); | ||||
|         if (RHASH_AR_TABLE_P(obj)) { | ||||
|             size += sizeof(ar_table); | ||||
| 	} | ||||
|         else { | ||||
|             VM_ASSERT(RHASH_ST_TABLE(obj) != NULL); | ||||
|  | @ -4254,9 +4254,9 @@ mark_hash(rb_objspace_t *objspace, VALUE hash) | |||
| { | ||||
|     rb_hash_stlike_foreach(hash, mark_keyvalue, (st_data_t)objspace); | ||||
| 
 | ||||
|     if (RHASH_ARRAY_P(hash)) { | ||||
|     if (RHASH_AR_TABLE_P(hash)) { | ||||
|         if (objspace->mark_func_data == NULL && RHASH_TRANSIENT_P(hash)) { | ||||
|             rb_transient_heap_mark(hash, RHASH_ARRAY(hash)); | ||||
|             rb_transient_heap_mark(hash, RHASH_AR_TABLE(hash)); | ||||
|         } | ||||
|     } | ||||
|     else { | ||||
|  | @ -9710,7 +9710,7 @@ rb_raw_obj_info(char *buff, const int buff_size, VALUE obj) | |||
| 	  } | ||||
|           case T_HASH: { | ||||
|               snprintf(buff, buff_size, "%s [%c%c] %d", buff, | ||||
|                        RHASH_ARRAY_P(obj) ? 'A' : 'S', | ||||
|                        RHASH_AR_TABLE_P(obj) ? 'A' : 'S', | ||||
|                        RHASH_TRANSIENT_P(obj) ? 'T' : ' ', | ||||
|                        (int)RHASH_SIZE(obj)); | ||||
|               break; | ||||
|  |  | |||
							
								
								
									
										76
									
								
								internal.h
									
										
									
									
									
								
							
							
						
						
									
										76
									
								
								internal.h
									
										
									
									
									
								
							|  | @ -760,44 +760,44 @@ struct RComplex { | |||
| 
 | ||||
| enum ruby_rhash_flags { | ||||
|     RHASH_ST_TABLE_FLAG = FL_USER3, | ||||
|     RHASH_ARRAY_MAX_SIZE = 8, | ||||
|     RHASH_ARRAY_SIZE_MASK = (FL_USER4|FL_USER5|FL_USER6|FL_USER7), | ||||
|     RHASH_ARRAY_SIZE_SHIFT = (FL_USHIFT+4), | ||||
|     RHASH_ARRAY_BOUND_MASK = (FL_USER8|FL_USER9|FL_USER10|FL_USER11), | ||||
|     RHASH_ARRAY_BOUND_SHIFT = (FL_USHIFT+8), | ||||
|     RHASH_AR_TABLE_MAX_SIZE = 8, | ||||
|     RHASH_AR_TABLE_SIZE_MASK = (FL_USER4|FL_USER5|FL_USER6|FL_USER7), | ||||
|     RHASH_AR_TABLE_SIZE_SHIFT = (FL_USHIFT+4), | ||||
|     RHASH_AR_TABLE_BOUND_MASK = (FL_USER8|FL_USER9|FL_USER10|FL_USER11), | ||||
|     RHASH_AR_TABLE_BOUND_SHIFT = (FL_USHIFT+8), | ||||
| 
 | ||||
|     RHASH_ENUM_END | ||||
| }; | ||||
| 
 | ||||
| #define HASH_PROC_DEFAULT FL_USER2 | ||||
| 
 | ||||
| #define RHASH_ARRAY_SIZE_RAW(h) \ | ||||
|   ((unsigned int)((RBASIC(h)->flags & RHASH_ARRAY_SIZE_MASK) >> RHASH_ARRAY_SIZE_SHIFT)) | ||||
| #define RHASH_AR_TABLE_SIZE_RAW(h) \ | ||||
|   ((unsigned int)((RBASIC(h)->flags & RHASH_AR_TABLE_SIZE_MASK) >> RHASH_AR_TABLE_SIZE_SHIFT)) | ||||
| 
 | ||||
| int rb_hash_array_p(VALUE hash); | ||||
| struct li_table *rb_hash_array(VALUE hash); | ||||
| int rb_hash_ar_table_p(VALUE hash); | ||||
| struct ar_table_struct *rb_hash_ar_table(VALUE hash); | ||||
| st_table *rb_hash_st_table(VALUE hash); | ||||
| void rb_hash_st_table_set(VALUE hash, st_table *st); | ||||
| 
 | ||||
| #if 0 /* for debug */
 | ||||
| #define RHASH_ARRAY_P(hash)       rb_hash_array_p(hash) | ||||
| #define RHASH_ARRAY(h)            rb_hash_array(h) | ||||
| #define RHASH_ST_TABLE(h)         rb_hash_st_table(h) | ||||
| #define RHASH_AR_TABLE_P(hash)       rb_hash_ar_table_p(hash) | ||||
| #define RHASH_AR_TABLE(h)            rb_hash_ar_table(h) | ||||
| #define RHASH_ST_TABLE(h)            rb_hash_st_table(h) | ||||
| #else | ||||
| #define RHASH_ARRAY_P(hash)       (!FL_TEST_RAW((hash), RHASH_ST_TABLE_FLAG)) | ||||
| #define RHASH_ARRAY(hash)         (RHASH(hash)->as.li) | ||||
| #define RHASH_ST_TABLE(hash)      (RHASH(hash)->as.st) | ||||
| #define RHASH_AR_TABLE_P(hash)       (!FL_TEST_RAW((hash), RHASH_ST_TABLE_FLAG)) | ||||
| #define RHASH_AR_TABLE(hash)         (RHASH(hash)->as.ar) | ||||
| #define RHASH_ST_TABLE(hash)         (RHASH(hash)->as.st) | ||||
| #endif | ||||
| 
 | ||||
| #define RHASH(obj)                (R_CAST(RHash)(obj)) | ||||
| #define RHASH_ST_SIZE(h)          (RHASH_ST_TABLE(h)->num_entries) | ||||
| #define RHASH_TABLE_P(h)          (!RHASH_ARRAY_P(h)) | ||||
| #define RHASH_CLEAR(h)            (FL_UNSET_RAW(h, RHASH_ST_TABLE_FLAG), RHASH(h)->as.li = NULL) | ||||
| #define RHASH(obj)                   (R_CAST(RHash)(obj)) | ||||
| #define RHASH_ST_SIZE(h)             (RHASH_ST_TABLE(h)->num_entries) | ||||
| #define RHASH_ST_TABLE_P(h)          (!RHASH_AR_TABLE_P(h)) | ||||
| #define RHASH_ST_CLEAR(h)            (FL_UNSET_RAW(h, RHASH_ST_TABLE_FLAG), RHASH(h)->as.ar = NULL) | ||||
| 
 | ||||
| #define RHASH_ARRAY_SIZE_MASK     (VALUE)RHASH_ARRAY_SIZE_MASK | ||||
| #define RHASH_ARRAY_SIZE_SHIFT    RHASH_ARRAY_SIZE_SHIFT | ||||
| #define RHASH_ARRAY_BOUND_MASK    (VALUE)RHASH_ARRAY_BOUND_MASK | ||||
| #define RHASH_ARRAY_BOUND_SHIFT   RHASH_ARRAY_BOUND_SHIFT | ||||
| #define RHASH_AR_TABLE_SIZE_MASK     (VALUE)RHASH_AR_TABLE_SIZE_MASK | ||||
| #define RHASH_AR_TABLE_SIZE_SHIFT    RHASH_AR_TABLE_SIZE_SHIFT | ||||
| #define RHASH_AR_TABLE_BOUND_MASK    (VALUE)RHASH_AR_TABLE_BOUND_MASK | ||||
| #define RHASH_AR_TABLE_BOUND_SHIFT   RHASH_AR_TABLE_BOUND_SHIFT | ||||
| 
 | ||||
| #if USE_TRANSIENT_HEAP | ||||
| #define RHASH_TRANSIENT_FLAG      FL_USER14 | ||||
|  | @ -810,33 +810,33 @@ void rb_hash_st_table_set(VALUE hash, st_table *st); | |||
| #define RHASH_UNSET_TRANSIENT_FLAG(h) ((void)0) | ||||
| #endif | ||||
| 
 | ||||
| #define RHASH_ARRAY_MAX_SIZE      8 | ||||
| #define RHASH_ARRAY_MAX_BOUND     RHASH_ARRAY_MAX_SIZE | ||||
| #define RHASH_AR_TABLE_MAX_SIZE      8 | ||||
| #define RHASH_AR_TABLE_MAX_BOUND     RHASH_AR_TABLE_MAX_SIZE | ||||
| 
 | ||||
| typedef struct li_table_entry { | ||||
| typedef struct ar_table_entry { | ||||
|     VALUE hash; | ||||
|     VALUE key; | ||||
|     VALUE record; | ||||
| } li_table_entry; | ||||
| } ar_table_entry; | ||||
| 
 | ||||
| typedef struct li_table { | ||||
|     li_table_entry entries[RHASH_ARRAY_MAX_SIZE]; | ||||
| } li_table; | ||||
| typedef struct ar_table_struct { | ||||
|     ar_table_entry entries[RHASH_AR_TABLE_MAX_SIZE]; | ||||
| } ar_table; | ||||
| 
 | ||||
| /*
 | ||||
|  * RHASH_ARRAY_P(h): | ||||
|  * * as.li == NULL or | ||||
|  *   as.li points li_table. | ||||
|  * * as.li is allocated by transient heap or xmalloc. | ||||
|  * RHASH_AR_TABLE_P(h): | ||||
|  * * as.ar == NULL or | ||||
|  *   as.ar points ar_table. | ||||
|  * * as.ar is allocated by transient heap or xmalloc. | ||||
|  * | ||||
|  * !RHASH_ARRAY_P(h): | ||||
|  * !RHASH_AR_TABLE_P(h): | ||||
|  * * as.st points st_table. | ||||
|  */ | ||||
| struct RHash { | ||||
|     struct RBasic basic; | ||||
|     union { | ||||
|         struct st_table *st; | ||||
|         struct li_table *li; /* possibly 0 */ | ||||
|         st_table *st; | ||||
|         ar_table *ar; /* possibly 0 */ | ||||
|     } as; | ||||
|     int iter_lev; | ||||
|     const VALUE ifnone; | ||||
|  | @ -849,7 +849,7 @@ struct RHash { | |||
| 
 | ||||
| #  define RHASH_ITER_LEV(h)  (RHASH(h)->iter_lev) | ||||
| #  define RHASH_IFNONE(h)    (RHASH(h)->ifnone) | ||||
| #  define RHASH_SIZE(h)      (RHASH_ARRAY_P(h) ? RHASH_ARRAY_SIZE_RAW(h) : RHASH_ST_SIZE(h)) | ||||
| #  define RHASH_SIZE(h)      (RHASH_AR_TABLE_P(h) ? RHASH_AR_TABLE_SIZE_RAW(h) : RHASH_ST_SIZE(h)) | ||||
| #endif /* #ifdef RHASH_ITER_LEV */ | ||||
| 
 | ||||
| /* missing/setproctitle.c */ | ||||
|  |  | |||
|  | @ -583,8 +583,8 @@ transient_heap_ptr(VALUE obj, int error) | |||
|         break; | ||||
|       case T_HASH: | ||||
|         if (RHASH_TRANSIENT_P(obj)) { | ||||
|             TH_ASSERT(RHASH_ARRAY_P(obj)); | ||||
|             ptr = (VALUE *)(RHASH(obj)->as.li); | ||||
|             TH_ASSERT(RHASH_AR_TABLE_P(obj)); | ||||
|             ptr = (VALUE *)(RHASH(obj)->as.ar); | ||||
|         } | ||||
|         else { | ||||
|             ptr = NULL; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 ko1
						ko1