Minor optimization and cleanup for PositionCodec
ClosedPublic

Authored by bruns on Dec 3 2018, 2:55 PM.

Details

Summary

Both getVarint32Ptr and getVarint32PtrFallback return nullptr when
p >= limit. Avoid the call to getVarint32PtrFallback and immediately
return from getVarint32.

As it is safe to call getVarint32 with p >= limit, skip the extra check in
each getDifferentialVarInt32 loop iteration, speeds up decoding results
for the 3 benchmark cases by ~10%.

Remove unnecessary reinterpret_cast<char*>(p), p is a char*.

Test Plan

positioncodecbenchmark
ctest

Diff Detail

Repository
R293 Baloo
Branch
submit
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 5672
Build 5690: arc lint + arc unit
bruns created this revision.Dec 3 2018, 2:55 PM
Restricted Application added projects: Frameworks, Baloo. · View Herald TranscriptDec 3 2018, 2:55 PM
Restricted Application added a subscriber: kde-frameworks-devel. · View Herald Transcript
bruns requested review of this revision.Dec 3 2018, 2:55 PM
ngraham accepted this revision.Dec 3 2018, 8:46 PM
This revision is now accepted and ready to land.Dec 3 2018, 8:46 PM
This revision was automatically updated to reflect the committed changes.