[ 
https://issues.apache.org/jira/browse/LUCENE-3738?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13196916#comment-13196916
 ] 

Uwe Schindler commented on LUCENE-3738:
---------------------------------------

bq. So, if we can't add that assert in today, I think we should at least fix 
readVLong to handle negative longs... but then you quietly spend 9 bytes (even 
more trappy!).

As the code is written by a loop, we would write 10 bytes, of course the last 
one only with 1 bit. If we wont to spare that and optimize the long case to 
interpret the continuation bit in the last byte different (as part of data), 
the writer must also do that. Ideally we would unroll both loops.
                
> Be consistent about negative vInt/vLong
> ---------------------------------------
>
>                 Key: LUCENE-3738
>                 URL: https://issues.apache.org/jira/browse/LUCENE-3738
>             Project: Lucene - Java
>          Issue Type: Bug
>            Reporter: Michael McCandless
>             Fix For: 3.6, 4.0
>
>
> Today, write/readVInt "allows" a negative int, in that it will encode and 
> decode correctly, just horribly inefficiently (5 bytes).
> However, read/writeVLong fails (trips an assert).
> I'd prefer that both vInt/vLong trip an assert if you ever try to write a 
> negative number... it's badly trappy today.  But, unfortunately, we sometimes 
> rely on this... had we had this assert in 'since the beginning' we could have 
> avoided that.
> So, if we can't add that assert in today, I think we should at least fix 
> readVLong to handle negative longs... but then you quietly spend 9 bytes 
> (even more trappy!).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to