Skip to content

Commit

Permalink
Make sure string data is available when passed to the registered comp…
Browse files Browse the repository at this point in the history
…letion handler (#6411)

* Make sure string data are available when passed to the registered completion handler

* Update gen/ folders
  • Loading branch information
vivien-apple authored May 3, 2021
1 parent 91a2b6d commit 06a9a3e
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 14 deletions.
7 changes: 3 additions & 4 deletions examples/chip-tool/gen/CHIPClustersObjc.mm
Original file line number Diff line number Diff line change
Expand Up @@ -104,16 +104,15 @@ static void CallbackFn(void * context, uint8_t status)

static void CallbackFn(void * context, chip::ByteSpan value)
{
NSData * data = [NSData dataWithBytes:value.data() length:value.size()];

CHIPStringAttributeCallbackBridge * callback = reinterpret_cast<CHIPStringAttributeCallbackBridge *>(context);
if (callback && callback->mQueue) {
dispatch_async(callback->mQueue, ^{
if (callback->mOctetString) {
NSData * data = [NSData dataWithBytes:value.data() length:value.size()];
callback->mHandler(nil, @ { @"value" : data });
} else {
NSString * str = [[NSString alloc] initWithBytes:value.data()
length:value.size()
encoding:NSUTF8StringEncoding];
NSString * str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
callback->mHandler(nil, @ { @"value" : str });
}

Expand Down
5 changes: 3 additions & 2 deletions src/app/zap-templates/templates/app/CHIPClustersObjc-src.zapt
Original file line number Diff line number Diff line change
Expand Up @@ -88,17 +88,18 @@ public:

static void CallbackFn(void * context, chip::ByteSpan value)
{
NSData * data = [NSData dataWithBytes: value.data() length: value.size()];

CHIPStringAttributeCallbackBridge * callback = reinterpret_cast<CHIPStringAttributeCallbackBridge *>(context);
if (callback && callback->mQueue) {
dispatch_async(callback->mQueue, ^{
if (callback->mOctetString)
{
NSData *data = [NSData dataWithBytes: value.data() length: value.size()];
callback->mHandler(nil, @{ @"value": data });
}
else
{
NSString * str = [[NSString alloc] initWithBytes:value.data() length:value.size() encoding:NSUTF8StringEncoding];
NSString * str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
callback->mHandler(nil, @{ @"value": str });
}

Expand Down
7 changes: 3 additions & 4 deletions src/controller/python/gen/CHIPClustersObjc.mm
Original file line number Diff line number Diff line change
Expand Up @@ -104,16 +104,15 @@ static void CallbackFn(void * context, uint8_t status)

static void CallbackFn(void * context, chip::ByteSpan value)
{
NSData * data = [NSData dataWithBytes:value.data() length:value.size()];

CHIPStringAttributeCallbackBridge * callback = reinterpret_cast<CHIPStringAttributeCallbackBridge *>(context);
if (callback && callback->mQueue) {
dispatch_async(callback->mQueue, ^{
if (callback->mOctetString) {
NSData * data = [NSData dataWithBytes:value.data() length:value.size()];
callback->mHandler(nil, @ { @"value" : data });
} else {
NSString * str = [[NSString alloc] initWithBytes:value.data()
length:value.size()
encoding:NSUTF8StringEncoding];
NSString * str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
callback->mHandler(nil, @ { @"value" : str });
}

Expand Down
7 changes: 3 additions & 4 deletions src/darwin/Framework/CHIP/gen/CHIPClustersObjc.mm
Original file line number Diff line number Diff line change
Expand Up @@ -104,16 +104,15 @@ static void CallbackFn(void * context, uint8_t status)

static void CallbackFn(void * context, chip::ByteSpan value)
{
NSData * data = [NSData dataWithBytes:value.data() length:value.size()];

CHIPStringAttributeCallbackBridge * callback = reinterpret_cast<CHIPStringAttributeCallbackBridge *>(context);
if (callback && callback->mQueue) {
dispatch_async(callback->mQueue, ^{
if (callback->mOctetString) {
NSData * data = [NSData dataWithBytes:value.data() length:value.size()];
callback->mHandler(nil, @ { @"value" : data });
} else {
NSString * str = [[NSString alloc] initWithBytes:value.data()
length:value.size()
encoding:NSUTF8StringEncoding];
NSString * str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
callback->mHandler(nil, @ { @"value" : str });
}

Expand Down

0 comments on commit 06a9a3e

Please sign in to comment.