fix: InAppPurchase pre-emptive deallocation (#40938)
* fix: InAppPurchase pre-emptive deallocation * test: try re-enabling IAP tests
This commit is contained in:
parent
b39ebb8625
commit
d5d162b622
3 changed files with 11 additions and 9 deletions
|
@ -26,6 +26,7 @@
|
|||
in_app_purchase::InAppPurchaseCallback callback_;
|
||||
NSInteger quantity_;
|
||||
NSString* username_;
|
||||
InAppPurchase __strong* self_;
|
||||
}
|
||||
|
||||
- (id)initWithCallback:(in_app_purchase::InAppPurchaseCallback)callback
|
||||
|
@ -53,6 +54,7 @@
|
|||
callback_ = std::move(callback);
|
||||
quantity_ = quantity;
|
||||
username_ = [username copy];
|
||||
self_ = self;
|
||||
}
|
||||
|
||||
return self;
|
||||
|
@ -91,6 +93,7 @@
|
|||
// Return if the product is not found or invalid.
|
||||
if (product == nil) {
|
||||
[self runCallback:false];
|
||||
self_ = nil;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -114,6 +117,7 @@
|
|||
|
||||
// Notify that the payment has been added to the queue with success.
|
||||
[self runCallback:true];
|
||||
self_ = nil;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -128,10 +132,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
username_ = nil;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
// ============================================================================
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
@interface InAppPurchaseProduct : NSObject <SKProductsRequestDelegate> {
|
||||
@private
|
||||
in_app_purchase::InAppPurchaseProductsCallback callback_;
|
||||
InAppPurchaseProduct __strong* self_;
|
||||
}
|
||||
|
||||
- (id)initWithCallback:(in_app_purchase::InAppPurchaseProductsCallback)callback;
|
||||
|
@ -43,6 +44,7 @@
|
|||
(in_app_purchase::InAppPurchaseProductsCallback)callback {
|
||||
if ((self = [super init])) {
|
||||
callback_ = std::move(callback);
|
||||
self_ = self;
|
||||
}
|
||||
|
||||
return self;
|
||||
|
@ -81,6 +83,7 @@
|
|||
// Send the callback to the browser thread.
|
||||
content::GetUIThreadTaskRunner({})->PostTask(
|
||||
FROM_HERE, base::BindOnce(std::move(callback_), converted));
|
||||
self_ = nil;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue