From bb3c51dc84e9514f55ca8a1e3abb1af140563c7b Mon Sep 17 00:00:00 2001 From: Tzvetan Mikov Date: Thu, 22 Aug 2024 12:49:50 -0700 Subject: [PATCH] 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 --- .../React/CxxBridge/NSDataBigString.mm | 27 ++----------------- 1 file changed, 2 insertions(+), 25 deletions(-) diff --git a/packages/react-native/React/CxxBridge/NSDataBigString.mm b/packages/react-native/React/CxxBridge/NSDataBigString.mm index 620d97ecf3b..51176e37380 100644 --- a/packages/react-native/React/CxxBridge/NSDataBigString.mm +++ b/packages/react-native/React/CxxBridge/NSDataBigString.mm @@ -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