mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 1142de8e2a
			
		
	
	
		1142de8e2a
		
	
	
	
	
		
			
			valgrind 3.9.0 on x86-64 reports a minor reduction in memory usage
when loading only RubyGems and RDoc by running: ruby -rrdoc -eexit
before: HEAP SUMMARY:
    in use at exit: 2,913,448 bytes in 27,394 blocks
  total heap usage: 48,362 allocs, 20,968 frees, 9,034,621 bytes alloc
after: HEAP SUMMARY:
    in use at exit: 2,880,056 bytes in 26,712 blocks
  total heap usage: 47,791 allocs, 21,079 frees, 9,046,507 bytes alloc
* class.c (struct clone_const_arg): adjust for id_table
  (clone_const): ditto
  (clone_const_i): ditto
  (rb_mod_init_copy): ditto
  (rb_singleton_class_clone_and_attach): ditto
  (rb_include_class_new): ditto
  (include_modules_at): ditto
* constant.h (rb_free_const_table): ditto
* gc.c (free_const_entry_i): ditto
  (rb_free_const_table): ditto
  (obj_memsize_of): ditto
  (mark_const_entry_i): ditto
  (mark_const_tbl): ditto
* internal.h (struct rb_classext_struct): ditto
* object.c (rb_mod_const_set): resolve class name on assignment
* variable.c (const_update): replace with const_tbl_update
  (const_tbl_update): new function
  (fc_i): adjust for id_table
  (find_class_path): ditto
  (autoload_const_set): st_update => const_tbl_update
  (rb_const_remove): adjust for id_table
  (sv_i): ditto
  (rb_local_constants_i): ditto
  (rb_local_constants): ditto
  (rb_mod_const_at): ditto
  (rb_mod_const_set): ditto
  (rb_const_lookup): ditto
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53376 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
	
			
		
			
				
	
	
		
			50 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			1.5 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_DEPRECATED = 0x100,
 | |
| 
 | |
|     CONST_VISIBILITY_MASK = 0xff,
 | |
|     CONST_PUBLIC    = 0x00,
 | |
|     CONST_PRIVATE,
 | |
|     CONST_VISIBILITY_MAX
 | |
| } rb_const_flag_t;
 | |
| 
 | |
| #define RB_CONST_PRIVATE_P(ce) \
 | |
|     (((ce)->flag & CONST_VISIBILITY_MASK) == CONST_PRIVATE)
 | |
| #define RB_CONST_PUBLIC_P(ce) \
 | |
|     (((ce)->flag & CONST_VISIBILITY_MASK) == CONST_PUBLIC)
 | |
| 
 | |
| #define RB_CONST_DEPRECATED_P(ce) \
 | |
|     ((ce)->flag & CONST_DEPRECATED)
 | |
| 
 | |
| typedef struct rb_const_entry_struct {
 | |
|     rb_const_flag_t flag;
 | |
|     int line;
 | |
|     const VALUE value;            /* should be mark */
 | |
|     const VALUE file;             /* should be mark */
 | |
| } rb_const_entry_t;
 | |
| 
 | |
| VALUE rb_mod_private_constant(int argc, const VALUE *argv, VALUE obj);
 | |
| VALUE rb_mod_public_constant(int argc, const VALUE *argv, VALUE obj);
 | |
| VALUE rb_mod_deprecate_constant(int argc, const VALUE *argv, VALUE obj);
 | |
| void rb_free_const_table(struct rb_id_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);
 | |
| rb_const_entry_t *rb_const_lookup(VALUE klass, ID id);
 | |
| 
 | |
| #endif /* CONSTANT_H */
 |