You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: do not register TypeStringEmpty in string dedup table — PHP igbinary treats TypeStringEmpty (0x0D) as a special marker that does not occupy a slot in the string deduplication table. The previous implementation incorrectly registered empty strings in both decodeValue() and decodeArrayKey(), causing all subsequent StringID lookups to be off by one whenever an empty string appeared in the data. This manifested as corrupted keys in structures like badge payloads where empty string values are common and later entries reference previously registered strings by ID.
Tests
Added 4 test cases covering the empty string dedup table behavior:
TestEmptyStringValueDoesNotShiftStringIDs — empty value followed by StringID reference
TestEmptyStringKeyDoesNotShiftStringIDs — empty key followed by StringID reference