mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* include/ruby/ruby.h: added some declarations for event hooks.
* lib/profile.rb: set VM::InstructionSequence.compile_option. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13946 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									fd0ab68415
								
							
						
					
					
						commit
						731aa0d0a8
					
				
					 4 changed files with 40 additions and 23 deletions
				
			
		|  | @ -1,3 +1,9 @@ | |||
| Fri Nov 16 16:26:57 2007  Shugo Maeda  <shugo@ruby-lang.org> | ||||
| 
 | ||||
| 	* include/ruby/ruby.h: added some declarations for event hooks. | ||||
| 
 | ||||
| 	* lib/profile.rb: set VM::InstructionSequence.compile_option. | ||||
| 
 | ||||
| Fri Nov 16 11:16:41 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org> | ||||
| 
 | ||||
| 	* lib/yaml/rubytypes.rb (String#is_binary_data?): use Integer#fdiv. | ||||
|  |  | |||
|  | @ -940,6 +940,36 @@ void ruby_sysinit(int *, char ***); | |||
| #define HAVE_NATIVETHREAD | ||||
| int is_ruby_native_thread(void); | ||||
| 
 | ||||
| #define RUBY_EVENT_NONE     0x00 | ||||
| #define RUBY_EVENT_LINE     0x01 | ||||
| #define RUBY_EVENT_CLASS    0x02 | ||||
| #define RUBY_EVENT_END      0x04 | ||||
| #define RUBY_EVENT_CALL     0x08 | ||||
| #define RUBY_EVENT_RETURN   0x10 | ||||
| #define RUBY_EVENT_C_CALL   0x20 | ||||
| #define RUBY_EVENT_C_RETURN 0x40 | ||||
| #define RUBY_EVENT_RAISE    0x80 | ||||
| #define RUBY_EVENT_ALL      0xff | ||||
| #define RUBY_EVENT_VM      0x100 | ||||
| #define RUBY_EVENT_SWITCH  0x200 | ||||
| 
 | ||||
| typedef unsigned int rb_event_flag_t; | ||||
| typedef void (*rb_event_hook_func_t)(rb_event_flag_t, VALUE data, VALUE, ID, VALUE klass); | ||||
| 
 | ||||
| typedef struct rb_event_hook_struct { | ||||
|     rb_event_flag_t flag; | ||||
|     rb_event_hook_func_t func; | ||||
|     VALUE data; | ||||
|     struct rb_event_hook_struct *next; | ||||
| } rb_event_hook_t; | ||||
| 
 | ||||
| void rb_thread_add_event_hook(rb_thread_t *th, rb_event_hook_func_t func, | ||||
| 			      rb_event_flag_t events, VALUE data); | ||||
| void rb_add_event_hook(rb_event_hook_func_t func, rb_event_flag_t events, | ||||
| 		       VALUE data); | ||||
| int rb_thread_remove_event_hook(rb_thread_t *th, rb_event_hook_func_t func); | ||||
| int rb_remove_event_hook(rb_event_hook_func_t func); | ||||
| 
 | ||||
| #if defined(__cplusplus) | ||||
| #if 0 | ||||
| { /* satisfy cc-mode */ | ||||
|  |  | |||
|  | @ -1,5 +1,9 @@ | |||
| require 'profiler' | ||||
| 
 | ||||
| VM::InstructionSequence.compile_option = { | ||||
|   :trace_instruction => true, | ||||
|   :specialized_instruction => false | ||||
| } | ||||
| END { | ||||
|   Profiler__::print_profile(STDERR) | ||||
| } | ||||
|  |  | |||
							
								
								
									
										23
									
								
								vm_core.h
									
										
									
									
									
								
							
							
						
						
									
										23
									
								
								vm_core.h
									
										
									
									
									
								
							|  | @ -275,29 +275,6 @@ struct rb_iseq_struct { | |||
| 
 | ||||
| typedef struct rb_iseq_struct rb_iseq_t; | ||||
| 
 | ||||
| #define RUBY_EVENT_NONE     0x00 | ||||
| #define RUBY_EVENT_LINE     0x01 | ||||
| #define RUBY_EVENT_CLASS    0x02 | ||||
| #define RUBY_EVENT_END      0x04 | ||||
| #define RUBY_EVENT_CALL     0x08 | ||||
| #define RUBY_EVENT_RETURN   0x10 | ||||
| #define RUBY_EVENT_C_CALL   0x20 | ||||
| #define RUBY_EVENT_C_RETURN 0x40 | ||||
| #define RUBY_EVENT_RAISE    0x80 | ||||
| #define RUBY_EVENT_ALL      0xff | ||||
| #define RUBY_EVENT_VM      0x100 | ||||
| #define RUBY_EVENT_SWITCH  0x200 | ||||
| 
 | ||||
| typedef unsigned int rb_event_flag_t; | ||||
| typedef void (*rb_event_hook_func_t)(rb_event_flag_t, VALUE data, VALUE, ID, VALUE klass); | ||||
| 
 | ||||
| typedef struct rb_event_hook_struct { | ||||
|     rb_event_flag_t flag; | ||||
|     rb_event_hook_func_t func; | ||||
|     VALUE data; | ||||
|     struct rb_event_hook_struct *next; | ||||
| } rb_event_hook_t; | ||||
| 
 | ||||
| #define GetVMPtr(obj, ptr) \ | ||||
|   GetCoreDataFromValue(obj, rb_vm_t, ptr) | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 shugo
						shugo