mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 87a120fbdc
			
		
	
	
		87a120fbdc
		
	
	
	
	
		
			
			T_MODULE, T_ICLASS. * constant.h: constify rb_const_entry_t::value and file to detect assignment. * variable.c, internal.h (rb_st_insert_id_and_value, rb_st_copy): added. update table with write barrier. * method.h: constify some variables to detect assignment. * object.c (init_copy): add WBs. * variable.c: ditto. * vm_method.c (rb_add_method): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /**********************************************************************
 | |
| 
 | |
|   constant.h -
 | |
| 
 | |
|   $Author$
 | |
|   created at: Sun Nov 15 00:09:33 2009
 | |
| 
 | |
|   Copyright (C) 2009 Yusuke Endoh
 | |
| 
 | |
| **********************************************************************/
 | |
| #ifndef CONSTANT_H
 | |
| #define CONSTANT_H
 | |
| 
 | |
| typedef enum {
 | |
|     CONST_PUBLIC    = 0x00,
 | |
|     CONST_PRIVATE   = 0x01
 | |
| } rb_const_flag_t;
 | |
| 
 | |
| typedef struct rb_const_entry_struct {
 | |
|     rb_const_flag_t flag;
 | |
|     const VALUE value;            /* should be mark */
 | |
|     const VALUE file;             /* should be mark */
 | |
|     int line;
 | |
| } rb_const_entry_t;
 | |
| 
 | |
| VALUE rb_mod_private_constant(int argc, VALUE *argv, VALUE obj);
 | |
| VALUE rb_mod_public_constant(int argc, VALUE *argv, VALUE obj);
 | |
| void rb_free_const_table(st_table *tbl);
 | |
| VALUE rb_public_const_get(VALUE klass, ID id);
 | |
| VALUE rb_public_const_get_at(VALUE klass, ID id);
 | |
| VALUE rb_public_const_get_from(VALUE klass, ID id);
 | |
| int rb_public_const_defined(VALUE klass, ID id);
 | |
| int rb_public_const_defined_at(VALUE klass, ID id);
 | |
| int rb_public_const_defined_from(VALUE klass, ID id);
 | |
| 
 | |
| #endif /* CONSTANT_H */
 |