mirror of
https://github.com/status-im/react-native.git
synced 2025-01-28 02:04:55 +00:00
fix memory leak
Summary: Signed-off-by: yk3372 <yk3372@gmail.com> What existing problem does the pull request solve? ViewManagersPropertyCache, ViewManagerPropertyUpdater static field not release when ReactInstanceManager called destroy. I use this url to integrate RN: [http://facebook.github.io/react-native/docs/integration-with-existing-apps.html](http://facebook.github.io/react-native/docs/integration-with-existing-apps.html) and in Activity's onDestroy function add the follow code to release RN: ```java mReactInstanceManager.destroy(); mReactInstanceManager = null; ``` and then when I exit activity, find the static field not release. the follow is screen shot: before: ![2017-05-23 17 41 16](https://cloud.githubusercontent.com/assets/1514899/26350318/53ea250c-3fe5-11e7-8eda-a0dcc20ba4f6.jpg) after: ![2017-05-23 17 38 49](https://cloud.githubusercontent.com/assets/1514899/26350329/5e5b273e-3fe5-11e7-9b0b-a8b0e044abf3.jpg) Closes https://github.com/facebook/react-native/pull/14172 Differential Revision: D5128834 Pulled By: javache fbshipit-source-id: 657763fa21fd8826b4060f9a17e7f35f0e1e04d3
This commit is contained in:
parent
7cddaa02d6
commit
9dc0385405
@ -149,6 +149,7 @@ public class UIManagerModule extends ReactContextBaseJavaModule implements
|
||||
|
||||
getReactApplicationContext().unregisterComponentCallbacks(mMemoryTrimCallback);
|
||||
YogaNodePool.get().clear();
|
||||
ViewManagerPropertyUpdater.clear();
|
||||
}
|
||||
|
||||
private static Map<String, Object> createConstants(
|
||||
|
@ -30,6 +30,12 @@ public class ViewManagerPropertyUpdater {
|
||||
new HashMap<>();
|
||||
private static final Map<Class<?>, ShadowNodeSetter<?>> SHADOW_NODE_SETTER_MAP = new HashMap<>();
|
||||
|
||||
public static void clear() {
|
||||
ViewManagersPropertyCache.clear();
|
||||
VIEW_MANAGER_SETTER_MAP.clear();
|
||||
SHADOW_NODE_SETTER_MAP.clear();
|
||||
}
|
||||
|
||||
public static <T extends ViewManager, V extends View> void updateProps(
|
||||
T manager,
|
||||
V v,
|
||||
|
@ -28,6 +28,11 @@ import com.facebook.react.uimanager.annotations.ReactPropGroup;
|
||||
private static final Map<Class, Map<String, PropSetter>> CLASS_PROPS_CACHE = new HashMap<>();
|
||||
private static final Map<String, PropSetter> EMPTY_PROPS_MAP = new HashMap<>();
|
||||
|
||||
public static void clear() {
|
||||
CLASS_PROPS_CACHE.clear();
|
||||
EMPTY_PROPS_MAP.clear();
|
||||
}
|
||||
|
||||
/*package*/ static abstract class PropSetter {
|
||||
|
||||
protected final String mPropName;
|
||||
|
Loading…
x
Reference in New Issue
Block a user