VersionSectionRiskImpactNote
6000.7.0b8Fixes
Core
FixFixed case of DataStreamReader and DataStreamWriter intermittently corrupting packed data on 32-bit ARM (armeabi-v7a) players under IL2CPP. The bit-packing fast path read and wrote its 64-bit word by casting the buffer pointer and dereferencing it ((ulong)(buffer + byteIndex)) at an arbitrary byte offset; that is an unaligned 64-bit access, which is undefined behavior on ARMv7 and silently returned mangled bytes. The word is now transferred with a byte-wise copy (UnsafeUtility.MemCpy), which is alignment-safe on every architecture, and folds back to a single load/store on targets that allow unaligned access.
6000.7.0b7Fixes
Core
FixFixed case of DataStreamReader and DataStreamWriter intermittently corrupting packed data on 32-bit ARM (armeabi-v7a) players under IL2CPP. The bit-packing fast path read and wrote its 64-bit word by casting the buffer pointer and dereferencing it ((ulong)(buffer + byteIndex)) at an arbitrary byte offset; that is an unaligned 64-bit access, which is undefined behavior on ARMv7 and silently returned mangled bytes. The word is now transferred with a byte-wise copy (UnsafeUtility.MemCpy), which is alignment-safe on every architecture, and folds back to a single load/store on targets that allow unaligned access.
6000.7.0b6Fixes
Core
FixFixed case of DataStreamReader and DataStreamWriter intermittently corrupting packed data on 32-bit ARM (armeabi-v7a) players under IL2CPP. The bit-packing fast path read and wrote its 64-bit word by casting the buffer pointer and dereferencing it ((ulong)(buffer + byteIndex)) at an arbitrary byte offset; that is an unaligned 64-bit access, which is undefined behavior on ARMv7 and silently returned mangled bytes. The word is now transferred with a byte-wise copy (UnsafeUtility.MemCpy), which is alignment-safe on every architecture, and folds back to a single load/store on targets that allow unaligned access.
6000.7.0b5Fixes
Core
FixFixed case of DataStreamReader and DataStreamWriter intermittently corrupting packed data on 32-bit ARM (armeabi-v7a) players under IL2CPP. The bit-packing fast path read and wrote its 64-bit word by casting the buffer pointer and dereferencing it ((ulong)(buffer + byteIndex)) at an arbitrary byte offset; that is an unaligned 64-bit access, which is undefined behavior on ARMv7 and silently returned mangled bytes. The word is now transferred with a byte-wise copy (UnsafeUtility.MemCpy), which is alignment-safe on every architecture, and folds back to a single load/store on targets that allow unaligned access.
6000.7.0b4Fixes
Core
FixFixed case of DataStreamReader and DataStreamWriter intermittently corrupting packed data on 32-bit ARM (armeabi-v7a) players under IL2CPP. The bit-packing fast path read and wrote its 64-bit word by casting the buffer pointer and dereferencing it ((ulong)(buffer + byteIndex)) at an arbitrary byte offset; that is an unaligned 64-bit access, which is undefined behavior on ARMv7 and silently returned mangled bytes. The word is now transferred with a byte-wise copy (UnsafeUtility.MemCpy), which is alignment-safe on every architecture, and folds back to a single load/store on targets that allow unaligned access.
6000.7.0b3Fixes
Core
FixFixed case of DataStreamReader and DataStreamWriter intermittently corrupting packed data on 32-bit ARM (armeabi-v7a) players under IL2CPP. The bit-packing fast path read and wrote its 64-bit word by casting the buffer pointer and dereferencing it ((ulong)(buffer + byteIndex)) at an arbitrary byte offset; that is an unaligned 64-bit access, which is undefined behavior on ARMv7 and silently returned mangled bytes. The word is now transferred with a byte-wise copy (UnsafeUtility.MemCpy), which is alignment-safe on every architecture, and folds back to a single load/store on targets that allow unaligned access.
6000.7.0b2Fixes
Core
FixFixed case of DataStreamReader and DataStreamWriter intermittently corrupting packed data on 32-bit ARM (armeabi-v7a) players under IL2CPP. The bit-packing fast path read and wrote its 64-bit word by casting the buffer pointer and dereferencing it ((ulong)(buffer + byteIndex)) at an arbitrary byte offset; that is an unaligned 64-bit access, which is undefined behavior on ARMv7 and silently returned mangled bytes. The word is now transferred with a byte-wise copy (UnsafeUtility.MemCpy), which is alignment-safe on every architecture, and folds back to a single load/store on targets that allow unaligned access.

Pick your Unity version

Unity Releases compares releases against the version your project is on. Picking it now keeps Compare versions focused on what changes between where you are and where you might be going.