[ https://issues.apache.org/jira/browse/THRIFT-1047?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12988258#action_12988258 ]
Jake Donham commented on THRIFT-1047: ------------------------------------- Do you have benchmarking code around this you could share? I have a theory I'd like to test that an inline typecheck in rb_thrift_memory_buffer_write would not adversely affect performance. Something like if (IMMEDIATE_P(str) || BUILTIN_TYPE(str) != T_STRING) Check_Type(str, T_STRING) because the branch should be predicted correctly and the type field should be in the same cache line as the string ptr / length fields. > rb_thrift_memory_buffer_write treats arg as string without check, segfaults > if you pass non-string > -------------------------------------------------------------------------------------------------- > > Key: THRIFT-1047 > URL: https://issues.apache.org/jira/browse/THRIFT-1047 > Project: Thrift > Issue Type: Bug > Components: Ruby - Library > Affects Versions: 0.5 > Reporter: Jake Donham > > I think there should be a call to Check_Type(str, T_STRING) in there > VALUE rb_thrift_memory_buffer_write(VALUE self, VALUE str) { > VALUE buf = GET_BUF(self); > rb_str_buf_cat(buf, RSTRING_PTR(str), RSTRING_LEN(str)); > return Qnil; > } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.