diff options
author | Takashi Kokubun <takashikkbn@gmail.com> | 2022-11-27 22:23:35 -0800 |
---|---|---|
committer | Takashi Kokubun <takashikkbn@gmail.com> | 2022-11-27 22:47:46 -0800 |
commit | 2c1c0d3df033da6745aa0f828a704bb46a535fbc (patch) | |
tree | 3fe85f3ef967e2f041141e099881d49a1e7d21ea /mjit_compiler.c | |
parent | 87e7b640ebb6002236e601d09347850fab5858df (diff) | |
download | ruby-2c1c0d3df033da6745aa0f828a704bb46a535fbc.tar.gz |
MJIT: Get rid of C.fprintf
Faster code generation and cleaner code.
Diffstat (limited to 'mjit_compiler.c')
-rw-r--r-- | mjit_compiler.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/mjit_compiler.c b/mjit_compiler.c index 0e9f499424..be3942a7b0 100644 --- a/mjit_compiler.c +++ b/mjit_compiler.c @@ -123,11 +123,14 @@ mjit_compile(FILE *f, const rb_iseq_t *iseq, const char *funcname, int id) mjit_call_p = false; // Avoid impacting JIT metrics by itself extern VALUE rb_mMJITCompiler; - bool success = RTEST(rb_funcall(rb_mMJITCompiler, rb_intern("compile"), 4, - PTR2NUM((VALUE)f), rb_ptr("rb_iseq_t", iseq), rb_str_new_cstr(funcname), INT2NUM(id))); + VALUE src = rb_funcall(rb_mMJITCompiler, rb_intern("compile"), 3, + rb_ptr("rb_iseq_t", iseq), rb_str_new_cstr(funcname), INT2NUM(id)); + if (!NIL_P(src)) { + fprintf(f, "%s", RSTRING_PTR(src)); + } mjit_call_p = original_call_p; - return success; + return !NIL_P(src); } // |