Skip to content

Commit 9c8d9f3

Browse files
committed
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
1 parent bf5d6f0 commit 9c8d9f3

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

ChangeLog

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
Mon Mar 7 10:58:07 2016 Nobuyoshi Nakada <[email protected]>
2+
3+
* ext/win32ole/win32ole_event.c (rescue_callback): use
4+
rb_write_error_str instead of rb_write_error, to respect
5+
the encoding and prevent the message from GC.
6+
7+
* internal.h (rb_write_error_str): export.
8+
19
Mon Mar 7 01:38:41 2016 Rei Odaira <[email protected]>
210

311
* test/ruby/test_process.rb (test_execopts_gid): Skip a test

ext/win32ole/win32ole_event.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
* <code>WIN32OLE_EVENT</code> objects controls OLE event.
77
*/
88

9+
RUBY_EXTERN void rb_write_error_str(VALUE mesg);
10+
911
typedef struct {
1012
struct IEventSinkVtbl * lpVtbl;
1113
} IEventSink, *PEVENTSINK;
@@ -468,7 +470,7 @@ rescue_callback(VALUE arg)
468470
VALUE msg = rb_funcall(e, rb_intern("message"), 0);
469471
bt = rb_ary_entry(bt, 0);
470472
error = rb_sprintf("%"PRIsVALUE": %"PRIsVALUE" (%s)\n", bt, msg, rb_obj_classname(e));
471-
rb_write_error(StringValuePtr(error));
473+
rb_write_error_str(error);
472474
rb_backtrace();
473475
ruby_finalize();
474476
exit(-1);

internal.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -872,7 +872,6 @@ const char *ruby_get_inplace_mode(void);
872872
void ruby_set_inplace_mode(const char *);
873873
ssize_t rb_io_bufread(VALUE io, void *buf, size_t size);
874874
void rb_stdio_set_default_encoding(void);
875-
void rb_write_error_str(VALUE mesg);
876875
VALUE rb_io_flush_raw(VALUE, int);
877876
size_t rb_io_memsize(const rb_io_t *);
878877

@@ -1353,6 +1352,7 @@ VALUE rb_ident_hash_new(void);
13531352
/* io.c (export) */
13541353
void rb_maygvl_fd_fix_cloexec(int fd);
13551354
int rb_gc_for_fd(int err);
1355+
void rb_write_error_str(VALUE mesg);
13561356

13571357
/* numeric.c (export) */
13581358
VALUE rb_int_positive_pow(long x, unsigned long y);

0 commit comments

Comments
 (0)