mirror of
https://github.com/status-im/react-native.git
synced 2025-02-10 16:36:25 +00:00
Fix memory leak in RN fbsystrace support
Reviewed By: alexeylang Differential Revision: D5060485 fbshipit-source-id: f2ab38023f1870992c16bea08ee887261d0ca34b
This commit is contained in:
parent
6221053179
commit
65aaa9c045
@ -71,7 +71,7 @@ if (!RCTProfileIsProfiling()) { \
|
|||||||
static RCTProfileCallbacks *callbacks;
|
static RCTProfileCallbacks *callbacks;
|
||||||
static char *systrace_buffer;
|
static char *systrace_buffer;
|
||||||
|
|
||||||
static systrace_arg_t *systraceArgsFromDictionary(NSDictionary<NSString *, NSString *> *args)
|
static systrace_arg_t *newSystraceArgsFromDictionary(NSDictionary<NSString *, NSString *> *args)
|
||||||
{
|
{
|
||||||
if (args.count == 0) {
|
if (args.count == 0) {
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -547,7 +547,9 @@ void _RCTProfileBeginEvent(
|
|||||||
CHECK();
|
CHECK();
|
||||||
|
|
||||||
if (callbacks != NULL) {
|
if (callbacks != NULL) {
|
||||||
callbacks->begin_section(tag, name.UTF8String, args.count, systraceArgsFromDictionary(args));
|
systrace_arg_t *systraceArgs = newSystraceArgsFromDictionary(args);
|
||||||
|
callbacks->begin_section(tag, name.UTF8String, args.count, systraceArgs);
|
||||||
|
free(systraceArgs);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -610,8 +612,9 @@ NSUInteger RCTProfileBeginAsyncEvent(
|
|||||||
NSUInteger currentEventID = ++eventID;
|
NSUInteger currentEventID = ++eventID;
|
||||||
|
|
||||||
if (callbacks != NULL) {
|
if (callbacks != NULL) {
|
||||||
callbacks->begin_async_section(tag, name.UTF8String, (int)(currentEventID % INT_MAX),
|
systrace_arg_t *systraceArgs = newSystraceArgsFromDictionary(args);
|
||||||
args.count, systraceArgsFromDictionary(args));
|
callbacks->begin_async_section(tag, name.UTF8String, (int)(currentEventID % INT_MAX), args.count, systraceArgs);
|
||||||
|
free(systraceArgs);
|
||||||
} else {
|
} else {
|
||||||
dispatch_async(RCTProfileGetQueue(), ^{
|
dispatch_async(RCTProfileGetQueue(), ^{
|
||||||
RCTProfileOngoingEvents[@(currentEventID)] = @[
|
RCTProfileOngoingEvents[@(currentEventID)] = @[
|
||||||
|
Loading…
x
Reference in New Issue
Block a user