Skip to content

Commit 1015364

Browse files
vivien-applepull[bot]
authored andcommitted
Make sure string data is available when passed to the registered completion handler (#6411)
* Make sure string data are available when passed to the registered completion handler * Update gen/ folders
1 parent d8a8187 commit 1015364

File tree

4 files changed

+12
-14
lines changed

4 files changed

+12
-14
lines changed

examples/chip-tool/gen/CHIPClustersObjc.mm

+3-4
Original file line numberDiff line numberDiff line change
@@ -104,16 +104,15 @@ static void CallbackFn(void * context, uint8_t status)
104104

105105
static void CallbackFn(void * context, chip::ByteSpan value)
106106
{
107+
NSData * data = [NSData dataWithBytes:value.data() length:value.size()];
108+
107109
CHIPStringAttributeCallbackBridge * callback = reinterpret_cast<CHIPStringAttributeCallbackBridge *>(context);
108110
if (callback && callback->mQueue) {
109111
dispatch_async(callback->mQueue, ^{
110112
if (callback->mOctetString) {
111-
NSData * data = [NSData dataWithBytes:value.data() length:value.size()];
112113
callback->mHandler(nil, @ { @"value" : data });
113114
} else {
114-
NSString * str = [[NSString alloc] initWithBytes:value.data()
115-
length:value.size()
116-
encoding:NSUTF8StringEncoding];
115+
NSString * str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
117116
callback->mHandler(nil, @ { @"value" : str });
118117
}
119118

src/app/zap-templates/templates/app/CHIPClustersObjc-src.zapt

+3-2
Original file line numberDiff line numberDiff line change
@@ -88,17 +88,18 @@ public:
8888

8989
static void CallbackFn(void * context, chip::ByteSpan value)
9090
{
91+
NSData * data = [NSData dataWithBytes: value.data() length: value.size()];
92+
9193
CHIPStringAttributeCallbackBridge * callback = reinterpret_cast<CHIPStringAttributeCallbackBridge *>(context);
9294
if (callback && callback->mQueue) {
9395
dispatch_async(callback->mQueue, ^{
9496
if (callback->mOctetString)
9597
{
96-
NSData *data = [NSData dataWithBytes: value.data() length: value.size()];
9798
callback->mHandler(nil, @{ @"value": data });
9899
}
99100
else
100101
{
101-
NSString * str = [[NSString alloc] initWithBytes:value.data() length:value.size() encoding:NSUTF8StringEncoding];
102+
NSString * str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
102103
callback->mHandler(nil, @{ @"value": str });
103104
}
104105

src/controller/python/gen/CHIPClustersObjc.mm

+3-4
Original file line numberDiff line numberDiff line change
@@ -104,16 +104,15 @@ static void CallbackFn(void * context, uint8_t status)
104104

105105
static void CallbackFn(void * context, chip::ByteSpan value)
106106
{
107+
NSData * data = [NSData dataWithBytes:value.data() length:value.size()];
108+
107109
CHIPStringAttributeCallbackBridge * callback = reinterpret_cast<CHIPStringAttributeCallbackBridge *>(context);
108110
if (callback && callback->mQueue) {
109111
dispatch_async(callback->mQueue, ^{
110112
if (callback->mOctetString) {
111-
NSData * data = [NSData dataWithBytes:value.data() length:value.size()];
112113
callback->mHandler(nil, @ { @"value" : data });
113114
} else {
114-
NSString * str = [[NSString alloc] initWithBytes:value.data()
115-
length:value.size()
116-
encoding:NSUTF8StringEncoding];
115+
NSString * str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
117116
callback->mHandler(nil, @ { @"value" : str });
118117
}
119118

src/darwin/Framework/CHIP/gen/CHIPClustersObjc.mm

+3-4
Original file line numberDiff line numberDiff line change
@@ -104,16 +104,15 @@ static void CallbackFn(void * context, uint8_t status)
104104

105105
static void CallbackFn(void * context, chip::ByteSpan value)
106106
{
107+
NSData * data = [NSData dataWithBytes:value.data() length:value.size()];
108+
107109
CHIPStringAttributeCallbackBridge * callback = reinterpret_cast<CHIPStringAttributeCallbackBridge *>(context);
108110
if (callback && callback->mQueue) {
109111
dispatch_async(callback->mQueue, ^{
110112
if (callback->mOctetString) {
111-
NSData * data = [NSData dataWithBytes:value.data() length:value.size()];
112113
callback->mHandler(nil, @ { @"value" : data });
113114
} else {
114-
NSString * str = [[NSString alloc] initWithBytes:value.data()
115-
length:value.size()
116-
encoding:NSUTF8StringEncoding];
115+
NSString * str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
117116
callback->mHandler(nil, @ { @"value" : str });
118117
}
119118

0 commit comments

Comments
 (0)