mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
ReactNativeConfigHolder must retain underlying Java object as global_ref
Summary: We were using an alias_ref which is like a raw pointer (not managed/retained); as it turns out, everywhere (?) else we accept an alias_ref we convert it to a global_ref (see Binding.cpp, JMessageQueueThread). We've just gotten lucky to not have already hit use-after-free errors. Reviewed By: mdvacca Differential Revision: D17275200 fbshipit-source-id: 581a51da36e96c353ed1117e9e0f428e65d36d69
This commit is contained in:
committed by
Facebook Github Bot
parent
21977f895a
commit
09aefa191b
@@ -23,7 +23,7 @@ namespace react {
|
||||
class ReactNativeConfigHolder : public ReactNativeConfig {
|
||||
public:
|
||||
ReactNativeConfigHolder(jni::alias_ref<jobject> reactNativeConfig)
|
||||
: reactNativeConfig_(reactNativeConfig){};
|
||||
: reactNativeConfig_(make_global(reactNativeConfig)){};
|
||||
|
||||
bool getBool(const std::string& param) const override;
|
||||
std::string getString(const std::string& param) const override;
|
||||
@@ -31,7 +31,7 @@ class ReactNativeConfigHolder : public ReactNativeConfig {
|
||||
double getDouble(const std::string& param) const override;
|
||||
|
||||
private:
|
||||
jni::alias_ref<jobject> reactNativeConfig_;
|
||||
jni::global_ref<jobject> reactNativeConfig_;
|
||||
};
|
||||
|
||||
} // namespace react
|
||||
|
||||
Reference in New Issue
Block a user