mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
RN: don't check for or add zero terminator to bundle (#45966)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/45966 JSI performs the check itself, no need to do it here. Plus, bytecode bundles must not be zero terminated. ## Changelog: [IOS] [FIXED] - Fixes NSDataBigString length calculation Reviewed By: realsoelynn Differential Revision: D61058869 fbshipit-source-id: 15b99ef13f9aebd11ff410d02c21db8e46cc6ac3
This commit is contained in:
committed by
Facebook GitHub Bot
parent
1f755defdc
commit
bb3c51dc84
@@ -9,33 +9,10 @@
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
static NSData *ensureNullTerminated(NSData *source)
|
||||
{
|
||||
if (!source || source.length == 0) {
|
||||
return nil;
|
||||
}
|
||||
|
||||
NSUInteger sourceLength = source.length;
|
||||
unsigned char lastByte;
|
||||
[source getBytes:&lastByte range:NSMakeRange(sourceLength - 1, 1)];
|
||||
|
||||
// TODO: bundles from the packager should always include a NULL byte
|
||||
// or we should we relax this requirement and only read as much from the
|
||||
// buffer as length indicates
|
||||
if (lastByte == '\0') {
|
||||
return source;
|
||||
} else {
|
||||
NSMutableData *data = [source mutableCopy];
|
||||
unsigned char nullByte = '\0';
|
||||
[data appendBytes:&nullByte length:1];
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
NSDataBigString::NSDataBigString(NSData *data)
|
||||
{
|
||||
m_length = [data length];
|
||||
m_data = ensureNullTerminated(data);
|
||||
m_data = data;
|
||||
m_length = [m_data length];
|
||||
}
|
||||
|
||||
} // namespace facebook::react
|
||||
|
||||
Reference in New Issue
Block a user