[ https://issues.apache.org/jira/browse/THRIFT-894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12908320#action_12908320 ]
Bryan Duxbury commented on THRIFT-894: -------------------------------------- The risk only comes from using both the buffer and the byte[] accessor. I suspect that people won't use both. One thing we could do: when someone calls the byte[] accessor, we could just wrap the copied byte[] in a new ByteBuffer and make that *the* buffer we have in the struct. You could argue that the maximum amount of damage is done the first time we copy, so we might as well preserve the results. > Make default accessors for binary fields return byte[]; provide new accessors > to get ByteBuffer version > ------------------------------------------------------------------------------------------------------- > > Key: THRIFT-894 > URL: https://issues.apache.org/jira/browse/THRIFT-894 > Project: Thrift > Issue Type: Improvement > Reporter: Bryan Duxbury > Assignee: Bryan Duxbury > Fix For: 0.5 > > Attachments: thrift-894-v2.patch, thrift-894.patch > > > Folks have pointed out that it's not always best for users to interact with > the ByteBuffers that are now backing binary fields in our structs. In truth, > it seems like ByteBuffers are probably an expert means of access, with > associated benefits and complexities. > I think we should generate two different sets of accessors for binary fields: > a default set, named like usual, that return and take byte[], and a second > set, named something like "get_buffer_for_<field>" that returns the > underlying ByteBuffer. The byte[] accessors can wrap around the ByteBuffer > ones as necessary. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.