mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	win32ole_event.c: use rb_write_error_str
* ext/win32ole/win32ole_event.c (rescue_callback): use rb_write_error_str instead of rb_write_error, to respect the encoding and prevent the message from GC. * internal.h (rb_write_error_str): export. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54013 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									bf5d6f0723
								
							
						
					
					
						commit
						9c8d9f31f7
					
				
					 3 changed files with 12 additions and 2 deletions
				
			
		|  | @ -1,3 +1,11 @@ | ||||||
|  | Mon Mar  7 10:58:07 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org> | ||||||
|  | 
 | ||||||
|  | 	* ext/win32ole/win32ole_event.c (rescue_callback): use | ||||||
|  | 	  rb_write_error_str instead of rb_write_error, to respect | ||||||
|  | 	  the encoding and prevent the message from GC. | ||||||
|  | 
 | ||||||
|  | 	* internal.h (rb_write_error_str): export. | ||||||
|  | 
 | ||||||
| Mon Mar  7 01:38:41 2016  Rei Odaira  <Rei.Odaira@gmail.com> | Mon Mar  7 01:38:41 2016  Rei Odaira  <Rei.Odaira@gmail.com> | ||||||
| 
 | 
 | ||||||
| 	* test/ruby/test_process.rb (test_execopts_gid): Skip a test | 	* test/ruby/test_process.rb (test_execopts_gid): Skip a test | ||||||
|  |  | ||||||
|  | @ -6,6 +6,8 @@ | ||||||
|  *   <code>WIN32OLE_EVENT</code> objects controls OLE event. |  *   <code>WIN32OLE_EVENT</code> objects controls OLE event. | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
|  | RUBY_EXTERN void rb_write_error_str(VALUE mesg); | ||||||
|  | 
 | ||||||
| typedef struct { | typedef struct { | ||||||
|     struct IEventSinkVtbl * lpVtbl; |     struct IEventSinkVtbl * lpVtbl; | ||||||
| } IEventSink, *PEVENTSINK; | } IEventSink, *PEVENTSINK; | ||||||
|  | @ -468,7 +470,7 @@ rescue_callback(VALUE arg) | ||||||
|     VALUE msg = rb_funcall(e, rb_intern("message"), 0); |     VALUE msg = rb_funcall(e, rb_intern("message"), 0); | ||||||
|     bt = rb_ary_entry(bt, 0); |     bt = rb_ary_entry(bt, 0); | ||||||
|     error = rb_sprintf("%"PRIsVALUE": %"PRIsVALUE" (%s)\n", bt, msg, rb_obj_classname(e)); |     error = rb_sprintf("%"PRIsVALUE": %"PRIsVALUE" (%s)\n", bt, msg, rb_obj_classname(e)); | ||||||
|     rb_write_error(StringValuePtr(error)); |     rb_write_error_str(error); | ||||||
|     rb_backtrace(); |     rb_backtrace(); | ||||||
|     ruby_finalize(); |     ruby_finalize(); | ||||||
|     exit(-1); |     exit(-1); | ||||||
|  |  | ||||||
|  | @ -872,7 +872,6 @@ const char *ruby_get_inplace_mode(void); | ||||||
| void ruby_set_inplace_mode(const char *); | void ruby_set_inplace_mode(const char *); | ||||||
| ssize_t rb_io_bufread(VALUE io, void *buf, size_t size); | ssize_t rb_io_bufread(VALUE io, void *buf, size_t size); | ||||||
| void rb_stdio_set_default_encoding(void); | void rb_stdio_set_default_encoding(void); | ||||||
| void rb_write_error_str(VALUE mesg); |  | ||||||
| VALUE rb_io_flush_raw(VALUE, int); | VALUE rb_io_flush_raw(VALUE, int); | ||||||
| size_t rb_io_memsize(const rb_io_t *); | size_t rb_io_memsize(const rb_io_t *); | ||||||
| 
 | 
 | ||||||
|  | @ -1353,6 +1352,7 @@ VALUE rb_ident_hash_new(void); | ||||||
| /* io.c (export) */ | /* io.c (export) */ | ||||||
| void rb_maygvl_fd_fix_cloexec(int fd); | void rb_maygvl_fd_fix_cloexec(int fd); | ||||||
| int rb_gc_for_fd(int err); | int rb_gc_for_fd(int err); | ||||||
|  | void rb_write_error_str(VALUE mesg); | ||||||
| 
 | 
 | ||||||
| /* numeric.c (export) */ | /* numeric.c (export) */ | ||||||
| VALUE rb_int_positive_pow(long x, unsigned long y); | VALUE rb_int_positive_pow(long x, unsigned long y); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 nobu
						nobu