In com.github.junrar.unpack.vm.RarVM, opcodes likes VM_INC, VM_INCB, VM_INCD, VM_DEC, VM_DECB, VM_DECD, VM_ADC, VM_SBB, VM_MUL... contains an errors:
In java operator '+', '-', '*' have priority over bitwise '&'.
So: (v & 0xffffffff + 1) becomes: (v & (0xffffffff + 1)), ie always 0
So: (v & 0xffffffff - 1) becomes: (v & (0xffffffff - 1))
In com.github.junrar.unpack.vm.RarVM, opcodes likes VM_INC, VM_INCB, VM_INCD, VM_DEC, VM_DECB, VM_DECD, VM_ADC, VM_SBB, VM_MUL... contains an errors:
In java operator '+', '-', '*' have priority over bitwise '&'. So: (v & 0xffffffff + 1) becomes: (v & (0xffffffff + 1)), ie always 0 So: (v & 0xffffffff - 1) becomes: (v & (0xffffffff - 1))
ref: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html
regards Tyco :)