mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	more on NULL versus functions.
Function pointers are not void*. See alsoce4ea956d28427fca49b
This commit is contained in:
		
							parent
							
								
									6ed1a5e0e6
								
							
						
					
					
						commit
						115fec062c
					
				
					 14 changed files with 29 additions and 28 deletions
				
			
		
							
								
								
									
										4
									
								
								dir.c
									
										
									
									
									
								
							
							
						
						
									
										4
									
								
								dir.c
									
										
									
									
									
								
							|  | @ -2714,7 +2714,7 @@ ruby_glob(const char *path, int flags, ruby_glob_func *func, VALUE arg) | |||
| { | ||||
|     ruby_glob_funcs_t funcs; | ||||
|     funcs.match = func; | ||||
|     funcs.error = NULL; | ||||
|     funcs.error = 0; | ||||
|     return ruby_glob0(path, AT_FDCWD, 0, flags & ~GLOB_VERBOSE, | ||||
| 		      &funcs, arg, rb_ascii8bit_encoding()); | ||||
| } | ||||
|  | @ -2843,7 +2843,7 @@ ruby_brace_glob_with_enc(const char *str, int flags, ruby_glob_func *func, VALUE | |||
| 
 | ||||
|     flags &= ~GLOB_VERBOSE; | ||||
|     args.funcs.match = func; | ||||
|     args.funcs.error = NULL; | ||||
|     args.funcs.error = 0; | ||||
|     args.value = arg; | ||||
|     args.flags = flags; | ||||
|     return ruby_brace_expand(str, flags, glob_brace, (VALUE)&args, enc, Qfalse); | ||||
|  |  | |||
							
								
								
									
										3
									
								
								dln.c
									
										
									
									
									
								
							
							
						
						
									
										3
									
								
								dln.c
									
										
									
									
									
								
							|  | @ -1254,7 +1254,8 @@ static bool | |||
| dln_incompatible_library_p(void *handle) | ||||
| { | ||||
|     void *ex = dlsym(handle, EXTERNAL_PREFIX"ruby_xmalloc"); | ||||
|     return ex && ex != ruby_xmalloc; | ||||
|     void *const fp = (void *)ruby_xmalloc; | ||||
|     return ex && ex != fp; | ||||
| } | ||||
| COMPILER_WARNING_POP | ||||
| #endif | ||||
|  |  | |||
|  | @ -98,7 +98,7 @@ rb_universal_newline = { | |||
|     2, /* max_output */ | ||||
|     asciicompat_converter, /* asciicompat_type */ | ||||
|     2, universal_newline_init, universal_newline_init, /* state_size, state_init, state_fini */ | ||||
|     NULL, NULL, NULL, fun_so_universal_newline, | ||||
|     0, 0, 0, fun_so_universal_newline, | ||||
|     universal_newline_finish | ||||
| }; | ||||
| 
 | ||||
|  | @ -110,8 +110,8 @@ rb_crlf_newline = { | |||
|     1, /* max_input */ | ||||
|     2, /* max_output */ | ||||
|     asciicompat_converter, /* asciicompat_type */ | ||||
|     0, NULL, NULL, /* state_size, state_init, state_fini */ | ||||
|     NULL, NULL, NULL, NULL | ||||
|     0, 0, 0, /* state_size, state_init, state_fini */ | ||||
|     0, 0, 0, 0 | ||||
| }; | ||||
| 
 | ||||
| static const rb_transcoder | ||||
|  | @ -122,8 +122,8 @@ rb_cr_newline = { | |||
|     1, /* max_input */ | ||||
|     1, /* max_output */ | ||||
|     asciicompat_converter, /* asciicompat_type */ | ||||
|     0, NULL, NULL, /* state_size, state_init, state_fini */ | ||||
|     NULL, NULL, NULL, NULL | ||||
|     0, 0, 0, /* state_size, state_init, state_fini */ | ||||
|     0, 0, 0, 0 | ||||
| }; | ||||
| 
 | ||||
| void | ||||
|  |  | |||
|  | @ -1966,7 +1966,7 @@ Init_Encoding(void) | |||
| 	rb_ary_push(list, enc_new(enc_table.list[i].enc)); | ||||
|     } | ||||
| 
 | ||||
|     rb_marshal_define_compat(rb_cEncoding, Qnil, NULL, enc_m_loader); | ||||
|     rb_marshal_define_compat(rb_cEncoding, Qnil, 0, enc_m_loader); | ||||
| } | ||||
| 
 | ||||
| void | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ | |||
| 
 | ||||
| static const rb_data_type_t test_data = { | ||||
|     "typed_data", | ||||
|     {NULL, ruby_xfree, NULL}, | ||||
|     {0, ruby_xfree, 0}, | ||||
|     NULL, NULL, | ||||
|     0/* deferred free */, | ||||
| }; | ||||
|  |  | |||
							
								
								
									
										2
									
								
								range.c
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								range.c
									
										
									
									
									
								
							|  | @ -1569,7 +1569,7 @@ r_cover_range_p(VALUE range, VALUE beg, VALUE end, VALUE val) | |||
|         return TRUE; | ||||
|     } | ||||
| 
 | ||||
|     val_max = rb_rescue2(r_call_max, val, NULL, Qnil, rb_eTypeError, (VALUE)0); | ||||
|     val_max = rb_rescue2(r_call_max, val, 0, Qnil, rb_eTypeError, (VALUE)0); | ||||
|     if (val_max == Qnil) return FALSE; | ||||
| 
 | ||||
|     return r_less(end, val_max) >= 0; | ||||
|  |  | |||
							
								
								
									
										4
									
								
								st.c
									
										
									
									
									
								
							
							
						
						
									
										4
									
								
								st.c
									
										
									
									
									
								
							|  | @ -1721,7 +1721,7 @@ int | |||
| st_foreach(st_table *tab, st_foreach_callback_func *func, st_data_t arg) | ||||
| { | ||||
|     const struct functor f = { func, arg }; | ||||
|     return st_general_foreach(tab, apply_functor, NULL, (st_data_t)&f, FALSE); | ||||
|     return st_general_foreach(tab, apply_functor, 0, (st_data_t)&f, FALSE); | ||||
| } | ||||
| 
 | ||||
| /* See comments for function st_delete_safe.  */ | ||||
|  | @ -1729,7 +1729,7 @@ int | |||
| st_foreach_check(st_table *tab, st_foreach_check_callback_func *func, st_data_t arg, | ||||
|                  st_data_t never ATTRIBUTE_UNUSED) | ||||
| { | ||||
|     return st_general_foreach(tab, func, NULL, arg, TRUE); | ||||
|     return st_general_foreach(tab, func, 0, arg, TRUE); | ||||
| } | ||||
| 
 | ||||
| /* Set up array KEYS by at most SIZE keys of head table TAB entries.
 | ||||
|  |  | |||
							
								
								
									
										6
									
								
								thread.c
									
										
									
									
									
								
							
							
						
						
									
										6
									
								
								thread.c
									
										
									
									
									
								
							|  | @ -488,7 +488,7 @@ static void | |||
| unblock_function_clear(rb_thread_t *th) | ||||
| { | ||||
|     rb_native_mutex_lock(&th->interrupt_lock); | ||||
|     th->unblock.func = NULL; | ||||
|     th->unblock.func = 0; | ||||
|     rb_native_mutex_unlock(&th->interrupt_lock); | ||||
| } | ||||
| 
 | ||||
|  | @ -961,7 +961,7 @@ thread_initialize(VALUE thread, VALUE args) | |||
|         } | ||||
|     } | ||||
|     else { | ||||
|         return thread_create_core(thread, args, NULL); | ||||
|         return thread_create_core(thread, args, 0); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  | @ -4582,7 +4582,7 @@ thgroup_memsize(const void *ptr) | |||
| 
 | ||||
| static const rb_data_type_t thgroup_data_type = { | ||||
|     "thgroup", | ||||
|     {NULL, RUBY_TYPED_DEFAULT_FREE, thgroup_memsize,}, | ||||
|     {0, RUBY_TYPED_DEFAULT_FREE, thgroup_memsize,}, | ||||
|     0, 0, RUBY_TYPED_FREE_IMMEDIATELY | ||||
| }; | ||||
| 
 | ||||
|  |  | |||
|  | @ -587,7 +587,7 @@ Init_native_thread(rb_thread_t *th) | |||
|         if (r) condattr_monotonic = NULL; | ||||
|     } | ||||
| #endif | ||||
|     pthread_key_create(&ruby_native_thread_key, NULL); | ||||
|     pthread_key_create(&ruby_native_thread_key, 0); | ||||
|     th->thread_id = pthread_self(); | ||||
|     fill_thread_id_str(th); | ||||
|     native_thread_init(th); | ||||
|  |  | |||
|  | @ -78,7 +78,7 @@ static const char* rb_mutex_unlock_th(rb_mutex_t *mutex, rb_thread_t *th); | |||
|  * | ||||
|  */ | ||||
| 
 | ||||
| #define mutex_mark NULL | ||||
| #define mutex_mark ((void(*)(void*))0) | ||||
| 
 | ||||
| static size_t | ||||
| rb_mutex_num_waiting(rb_mutex_t *mutex) | ||||
|  |  | |||
							
								
								
									
										4
									
								
								time.c
									
										
									
									
									
								
							
							
						
						
									
										4
									
								
								time.c
									
										
									
									
									
								
							|  | @ -5314,8 +5314,8 @@ time_mload(VALUE time, VALUE str) | |||
|     get_attr(nano_num, {}); | ||||
|     get_attr(nano_den, {}); | ||||
|     get_attr(submicro, {}); | ||||
|     get_attr(offset, (offset = rb_rescue(validate_utc_offset, offset, NULL, Qnil))); | ||||
|     get_attr(zone, (zone = rb_rescue(validate_zone_name, zone, NULL, Qnil))); | ||||
|     get_attr(offset, (offset = rb_rescue(validate_utc_offset, offset, 0, Qnil))); | ||||
|     get_attr(zone, (zone = rb_rescue(validate_zone_name, zone, 0, Qnil))); | ||||
|     get_attr(year, {}); | ||||
| 
 | ||||
| #undef get_attr | ||||
|  |  | |||
|  | @ -895,9 +895,9 @@ static const rb_transcoder | |||
|     #{max_input}, /* max_input */ | ||||
|     #{max_output}, /* max_output */ | ||||
|     #{ascii_compatibility}, /* asciicompat_type */ | ||||
|     0, NULL, NULL, /* state_size, state_init, state_fini */ | ||||
|     NULL, NULL, NULL, NULL, | ||||
|     NULL, NULL, NULL | ||||
|     0, 0, 0, /* state_size, state_init, state_fini */ | ||||
|     0, 0, 0, 0, | ||||
|     0, 0, 0 | ||||
| }; | ||||
| End | ||||
|   TRANSCODE_GENERATED_TRANSCODER_CODE << transcoder_code | ||||
|  |  | |||
|  | @ -2925,7 +2925,7 @@ econv_memsize(const void *ptr) | |||
| 
 | ||||
| static const rb_data_type_t econv_data_type = { | ||||
|     "econv", | ||||
|     {NULL, econv_free, econv_memsize,}, | ||||
|     {0, econv_free, econv_memsize,}, | ||||
|     0, 0, RUBY_TYPED_FREE_IMMEDIATELY | ||||
| }; | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										8
									
								
								vm.c
									
										
									
									
									
								
							
							
						
						
									
										8
									
								
								vm.c
									
										
									
									
									
								
							|  | @ -2383,7 +2383,7 @@ vm_memsize(const void *ptr) | |||
| 
 | ||||
| static const rb_data_type_t vm_data_type = { | ||||
|     "VM", | ||||
|     {NULL, NULL, vm_memsize,}, | ||||
|     {0, 0, vm_memsize,}, | ||||
|     0, 0, RUBY_TYPED_FREE_IMMEDIATELY | ||||
| }; | ||||
| 
 | ||||
|  | @ -3666,9 +3666,9 @@ usage_analysis_register_clear(VALUE self) | |||
| 
 | ||||
| #else | ||||
| 
 | ||||
| MAYBE_UNUSED(static void (*ruby_vm_collect_usage_func_insn)(int insn)) = NULL; | ||||
| MAYBE_UNUSED(static void (*ruby_vm_collect_usage_func_operand)(int insn, int n, VALUE op)) = NULL; | ||||
| MAYBE_UNUSED(static void (*ruby_vm_collect_usage_func_register)(int reg, int isset)) = NULL; | ||||
| MAYBE_UNUSED(static void (*ruby_vm_collect_usage_func_insn)(int insn)) = 0; | ||||
| MAYBE_UNUSED(static void (*ruby_vm_collect_usage_func_operand)(int insn, int n, VALUE op)) = 0; | ||||
| MAYBE_UNUSED(static void (*ruby_vm_collect_usage_func_register)(int reg, int isset)) = 0; | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 卜部昌平
						卜部昌平