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: fastbufferreader does not honor arraysegment configuration (up port) (#3321)
Up port of #3320
This PR resolves the issue where `FastBufferReader` did not provide
constructors that would automatically use an `ArraySegment`'s
configuration (Count and Offset) to define the `FastBufferReader`.
[MTTB-34](https://jira.unity3d.com/browse/MTTB-34)
fix: #2885
## Changelog
- Added `FastBufferReader(ArraySegment<byte> buffer, Allocator
copyAllocator)` constructor that uses the `ArraySegment.Offset` as the
`FastBufferReader` offset and the `ArraySegment.Count` as the
`FastBufferReader` length.
- Added `FastBufferReader(ArraySegment<byte> buffer, Allocator
copyAllocator, int length = -1)` constructor that uses the
`ArraySegment.Offset` as the `FastBufferReader` offset.
## Testing and Documentation
- Includes unit test.
- Includes public API documentation.
<!-- Uncomment and mark items off with a * if this PR deprecates any
API:
### Deprecated API
- [ ] An `[Obsolete]` attribute was added along with a `(RemovedAfter
yyyy-mm-dd)` entry.
- [ ] An [api updater] was added.
- [ ] Deprecation of the API is explained in the CHANGELOG.
- [ ] The users can understand why this API was removed and what they
should use instead.
-->
Copy file name to clipboardExpand all lines: com.unity.netcode.gameobjects/CHANGELOG.md
+3Lines changed: 3 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,9 @@ Additional documentation and release notes are available at [Multiplayer Documen
10
10
11
11
### Added
12
12
13
+
- Added `FastBufferReader(ArraySegment<byte> buffer, Allocator copyAllocator)` constructor that uses the `ArraySegment.Offset` as the `FastBufferReader` offset and the `ArraySegment.Count` as the `FastBufferReader` length. (#3321)
14
+
- Added `FastBufferReader(ArraySegment<byte> buffer, Allocator copyAllocator, int length = -1)` constructor that uses the `ArraySegment.Offset` as the `FastBufferReader` offset. (#3321)
15
+
13
16
### Fixed
14
17
15
18
- Fixed `OnClientConnectedCallback` passing incorrect `clientId` when scene management is disabled. (#3312)
Copy file name to clipboardExpand all lines: com.unity.netcode.gameobjects/Runtime/Serialization/FastBufferReader.cs
+48Lines changed: 48 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -140,6 +140,54 @@ public unsafe FastBufferReader(ArraySegment<byte> buffer, Allocator copyAllocato
140
140
}
141
141
}
142
142
143
+
/// <summary>
144
+
/// Create a FastBufferReader from an ArraySegment that uses the ArraySegment.Offset for the reader's offset.
145
+
///
146
+
/// A new buffer will be created using the given allocator and the value will be copied in.
147
+
/// FastBufferReader will then own the data.
148
+
///
149
+
/// Allocator.None is not supported for byte[]. If you need this functionality, use a fixed() block
150
+
/// and ensure the FastBufferReader isn't used outside that block.
151
+
/// </summary>
152
+
/// <param name="buffer">The buffer to copy from</param>
153
+
/// <param name="copyAllocator">The allocator type used for internal data when copying an existing buffer if other than Allocator.None is specified, that memory will be owned by this FastBufferReader instance</param>
154
+
/// <param name="length">The number of bytes to copy (all if this is -1)</param>
/// Create a FastBufferReader from an ArraySegment that uses the ArraySegment.Offset for the reader's offset and the ArraySegment.Count for the reader's length.
170
+
///
171
+
/// A new buffer will be created using the given allocator and the value will be copied in.
172
+
/// FastBufferReader will then own the data.
173
+
///
174
+
/// Allocator.None is not supported for byte[]. If you need this functionality, use a fixed() block
175
+
/// and ensure the FastBufferReader isn't used outside that block.
176
+
/// </summary>
177
+
/// <param name="buffer">The buffer to copy from</param>
178
+
/// <param name="copyAllocator">The allocator type used for internal data when copying an existing buffer if other than Allocator.None is specified, that memory will be owned by this FastBufferReader instance</param>
0 commit comments