From 65a7ec447309b361326c8a996a7660cdb69bf353 Mon Sep 17 00:00:00 2001 From: Kevin Gozali Date: Mon, 9 Dec 2019 10:56:57 -0800 Subject: [PATCH] iOS: added helper functions to gate image instrumentations Summary: Introduced 2 helper functions to toggle image instrumentation/logging (not in this diff) so that gating check is more efficient and easy to access across RN iOS core. Changelog: [Internal] Reviewed By: sammy-SC Differential Revision: D18597208 fbshipit-source-id: 0b22031802ab020b16d6fb63e52461cf80a37ab5 --- Libraries/Image/RCTImageLoader.h | 6 ++++++ Libraries/Image/RCTImageLoader.mm | 23 +++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/Libraries/Image/RCTImageLoader.h b/Libraries/Image/RCTImageLoader.h index 78cf41e467f..f82cdeccc2b 100644 --- a/Libraries/Image/RCTImageLoader.h +++ b/Libraries/Image/RCTImageLoader.h @@ -8,6 +8,7 @@ #import #import +#import #import #import #import @@ -15,6 +16,11 @@ #import #import +RCT_EXTERN BOOL RCTImageLoadingInstrumentationEnabled(void); +RCT_EXTERN BOOL RCTImageLoadingPerfInstrumentationEnabled(void); +RCT_EXTERN void RCTEnableImageLoadingInstrumentation(BOOL enabled); +RCT_EXTERN void RCTEnableImageLoadingPerfInstrumentation(BOOL enabled); + @interface RCTImageLoader : NSObject - (instancetype)init; - (instancetype)initWithRedirectDelegate:(id)redirectDelegate NS_DESIGNATED_INITIALIZER; diff --git a/Libraries/Image/RCTImageLoader.mm b/Libraries/Image/RCTImageLoader.mm index 5bb3b124867..6b82d8283ca 100644 --- a/Libraries/Image/RCTImageLoader.mm +++ b/Libraries/Image/RCTImageLoader.mm @@ -25,6 +25,29 @@ using namespace facebook::react; +static BOOL imageInstrumentationEnabled = NO; +static BOOL imagePerfInstrumentationEnabled = NO; + +BOOL RCTImageLoadingInstrumentationEnabled(void) +{ + return imageInstrumentationEnabled; +} + +BOOL RCTImageLoadingPerfInstrumentationEnabled(void) +{ + return imagePerfInstrumentationEnabled; +} + +void RCTEnableImageLoadingInstrumentation(BOOL enabled) +{ + imageInstrumentationEnabled = enabled; +} + +void RCTEnableImageLoadingPerfInstrumentation(BOOL enabled) +{ + imagePerfInstrumentationEnabled = enabled; +} + static NSInteger RCTImageBytesForImage(UIImage *image) { NSInteger singleImageBytes = image.size.width * image.size.height * image.scale * image.scale * 4;