Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
None
Description
As you can see, OutputBuffer calls the superclass constructor in the following way:
public OutputBuffer()
{ super((BLOCK_SIZE + BLOCK_SIZE) >> 2); }
Before 3d51ba5e965561 change it was
public OutputBuffer()
{ super(BLOCK_SIZE + BLOCK_SIZE >> 2); }
Which looked like the author did not know that >> has lower precedence than + and forgot to put parentheses. It looks like, the 3d51ba5e965561 change blindly applied static analyzer suggestions and added parentheses to preserve the current semantics. However, `(BLOCK_SIZE + BLOCK_SIZE) >> 2` is simply `BLOCK_SIZE / 2`.
My suggestion is the following:
- If everybody is fine with current behavior, let's update this to `super(BLOCK_SIZE / 2);` to avoid confusion.
- If we would like to preserve the original author's intention to allocate 1.25x more, let's place the parentheses in another way: `super(BLOCK_SIZE + (BLOCK_SIZE >> 2));`
Attachments
Issue Links
- links to