mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Replace folly::make_unique with std::make_unique (#26730)
Summary: There is a mixed usage of `folly::make_unique` and `std::make_unique`. Soon, `folly::make_unique` may be removed (see [this PR](https://github.com/facebook/folly/pull/1150)). Since `react-native` only supports C++14-compilers and later, switch to always using `std::make_unique`. ## Changelog [Internal] [Removed] - Replace folly::make_unique with std::make_unique Pull Request resolved: https://github.com/facebook/react-native/pull/26730 Test Plan: Running the existing test suite. No change in behavior is expected. Joshua Gross: buck install -r fb4a, make sure MP Home and forced teardown works okay on android Reviewed By: shergin Differential Revision: D18062400 Pulled By: JoshuaGross fbshipit-source-id: 978ca794c7e972db872a8dcc57c31bdec7451481
This commit is contained in:
committed by
Facebook Github Bot
parent
468d1a2d2e
commit
ba18ee9b87
@@ -8,14 +8,16 @@
|
||||
#include "SampleCxxModule.h"
|
||||
#include <cxxreact/JsArgumentHelpers.h>
|
||||
|
||||
#include <folly/Memory.h>
|
||||
#include <glog/logging.h>
|
||||
|
||||
#include <memory>
|
||||
#include <thread>
|
||||
|
||||
using namespace folly;
|
||||
|
||||
namespace facebook { namespace xplat { namespace samples {
|
||||
namespace facebook {
|
||||
namespace xplat {
|
||||
namespace samples {
|
||||
|
||||
std::string Sample::hello() {
|
||||
LOG(WARNING) << "glog: hello, world";
|
||||
@@ -26,11 +28,11 @@ double Sample::add(double a, double b) {
|
||||
return a + b;
|
||||
}
|
||||
|
||||
std::string Sample::concat(const std::string& a, const std::string& b) {
|
||||
std::string Sample::concat(const std::string &a, const std::string &b) {
|
||||
return a + b;
|
||||
}
|
||||
|
||||
std::string Sample::repeat(int count, const std::string& str) {
|
||||
std::string Sample::repeat(int count, const std::string &str) {
|
||||
std::string ret;
|
||||
for (int i = 0; i < count; i++) {
|
||||
ret += str;
|
||||
@@ -39,8 +41,7 @@ std::string Sample::repeat(int count, const std::string& str) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
void Sample::save(std::map<std::string, std::string> dict)
|
||||
{
|
||||
void Sample::save(std::map<std::string, std::string> dict) {
|
||||
state_ = std::move(dict);
|
||||
}
|
||||
|
||||
@@ -49,16 +50,16 @@ std::map<std::string, std::string> Sample::load() {
|
||||
}
|
||||
|
||||
void Sample::except() {
|
||||
// TODO mhorowitz #7128529: There's no way to automatically test this
|
||||
// right now.
|
||||
// TODO mhorowitz #7128529: There's no way to automatically test this
|
||||
// right now.
|
||||
// throw std::runtime_error("oops");
|
||||
}
|
||||
|
||||
void Sample::call_later(int msec, std::function<void()> f) {
|
||||
std::thread t([=] {
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(msec));
|
||||
f();
|
||||
});
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(msec));
|
||||
f();
|
||||
});
|
||||
t.detach();
|
||||
}
|
||||
|
||||
@@ -67,7 +68,7 @@ double Sample::twice(double n) {
|
||||
}
|
||||
|
||||
SampleCxxModule::SampleCxxModule(std::unique_ptr<Sample> sample)
|
||||
: sample_(std::move(sample)) {}
|
||||
: sample_(std::move(sample)) {}
|
||||
|
||||
std::string SampleCxxModule::getName() {
|
||||
return "Sample";
|
||||
@@ -75,90 +76,107 @@ std::string SampleCxxModule::getName() {
|
||||
|
||||
auto SampleCxxModule::getConstants() -> std::map<std::string, folly::dynamic> {
|
||||
return {
|
||||
{ "one", 1 },
|
||||
{ "two", 2 },
|
||||
{ "animal", "fox" },
|
||||
{"one", 1},
|
||||
{"two", 2},
|
||||
{"animal", "fox"},
|
||||
};
|
||||
}
|
||||
|
||||
auto SampleCxxModule::getMethods() -> std::vector<Method> {
|
||||
return {
|
||||
Method("hello", [this] {
|
||||
sample_->hello();
|
||||
}),
|
||||
Method("add", [this](dynamic args, Callback cb) {
|
||||
LOG(WARNING) << "Sample: add => "
|
||||
<< sample_->add(jsArgAsDouble(args, 0), jsArgAsDouble(args, 1));
|
||||
cb({sample_->add(jsArgAsDouble(args, 0), jsArgAsDouble(args, 1))});
|
||||
}),
|
||||
Method("concat", [this](dynamic args, Callback cb) {
|
||||
cb({sample_->concat(jsArgAsString(args, 0),
|
||||
jsArgAsString(args, 1))});
|
||||
}),
|
||||
Method("repeat", [this](dynamic args, Callback cb) {
|
||||
cb({sample_->repeat((int)jsArgAsInt(args, 0),
|
||||
jsArgAsString(args, 1))});
|
||||
}),
|
||||
Method("save", this, &SampleCxxModule::save),
|
||||
Method("load", this, &SampleCxxModule::load),
|
||||
Method("call_later", [this](dynamic args, Callback cb) {
|
||||
sample_->call_later((int)jsArgAsInt(args, 0), [cb] {
|
||||
cb({});
|
||||
});
|
||||
}),
|
||||
Method("except", [this] {
|
||||
sample_->except();
|
||||
}),
|
||||
Method("twice", [this](dynamic args) -> dynamic {
|
||||
return sample_->twice(jsArgAsDouble(args, 0));
|
||||
}, SyncTag),
|
||||
Method("syncHello", [this]() -> dynamic {
|
||||
sample_->hello();
|
||||
return nullptr;
|
||||
}, SyncTag),
|
||||
Method("addIfPositiveAsPromise", [](dynamic args, Callback cb, Callback cbError) {
|
||||
auto a = jsArgAsDouble(args, 0);
|
||||
auto b = jsArgAsDouble(args, 1);
|
||||
if (a < 0 || b < 0) {
|
||||
cbError({"Negative number!"});
|
||||
} else {
|
||||
cb({a + b});
|
||||
}
|
||||
}),
|
||||
Method("addIfPositiveAsAsync", [](dynamic args, Callback cb, Callback cbError) {
|
||||
auto a = jsArgAsDouble(args, 0);
|
||||
auto b = jsArgAsDouble(args, 1);
|
||||
if (a < 0 || b < 0) {
|
||||
cbError({"Negative number!"});
|
||||
} else {
|
||||
cb({a + b});
|
||||
}
|
||||
}, AsyncTag),
|
||||
Method("hello", [this] { sample_->hello(); }),
|
||||
Method(
|
||||
"add",
|
||||
[this](dynamic args, Callback cb) {
|
||||
LOG(WARNING) << "Sample: add => "
|
||||
<< sample_->add(
|
||||
jsArgAsDouble(args, 0), jsArgAsDouble(args, 1));
|
||||
cb({sample_->add(jsArgAsDouble(args, 0), jsArgAsDouble(args, 1))});
|
||||
}),
|
||||
Method(
|
||||
"concat",
|
||||
[this](dynamic args, Callback cb) {
|
||||
cb({sample_->concat(
|
||||
jsArgAsString(args, 0), jsArgAsString(args, 1))});
|
||||
}),
|
||||
Method(
|
||||
"repeat",
|
||||
[this](dynamic args, Callback cb) {
|
||||
cb({sample_->repeat(
|
||||
(int)jsArgAsInt(args, 0), jsArgAsString(args, 1))});
|
||||
}),
|
||||
Method("save", this, &SampleCxxModule::save),
|
||||
Method("load", this, &SampleCxxModule::load),
|
||||
Method(
|
||||
"call_later",
|
||||
[this](dynamic args, Callback cb) {
|
||||
sample_->call_later((int)jsArgAsInt(args, 0), [cb] { cb({}); });
|
||||
}),
|
||||
Method("except", [this] { sample_->except(); }),
|
||||
Method(
|
||||
"twice",
|
||||
[this](dynamic args) -> dynamic {
|
||||
return sample_->twice(jsArgAsDouble(args, 0));
|
||||
},
|
||||
SyncTag),
|
||||
Method(
|
||||
"syncHello",
|
||||
[this]() -> dynamic {
|
||||
sample_->hello();
|
||||
return nullptr;
|
||||
},
|
||||
SyncTag),
|
||||
Method(
|
||||
"addIfPositiveAsPromise",
|
||||
[](dynamic args, Callback cb, Callback cbError) {
|
||||
auto a = jsArgAsDouble(args, 0);
|
||||
auto b = jsArgAsDouble(args, 1);
|
||||
if (a < 0 || b < 0) {
|
||||
cbError({"Negative number!"});
|
||||
} else {
|
||||
cb({a + b});
|
||||
}
|
||||
}),
|
||||
Method(
|
||||
"addIfPositiveAsAsync",
|
||||
[](dynamic args, Callback cb, Callback cbError) {
|
||||
auto a = jsArgAsDouble(args, 0);
|
||||
auto b = jsArgAsDouble(args, 1);
|
||||
if (a < 0 || b < 0) {
|
||||
cbError({"Negative number!"});
|
||||
} else {
|
||||
cb({a + b});
|
||||
}
|
||||
},
|
||||
AsyncTag),
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
void SampleCxxModule::save(folly::dynamic args) {
|
||||
std::map<std::string, std::string> m;
|
||||
for (const auto& p : jsArgN(args, 0, &dynamic::items)) {
|
||||
m.emplace(jsArg(p.first, &dynamic::asString, "map key"),
|
||||
jsArg(p.second, &dynamic::asString, "map value"));
|
||||
for (const auto &p : jsArgN(args, 0, &dynamic::items)) {
|
||||
m.emplace(
|
||||
jsArg(p.first, &dynamic::asString, "map key"),
|
||||
jsArg(p.second, &dynamic::asString, "map value"));
|
||||
}
|
||||
sample_->save(std::move(m));
|
||||
}
|
||||
|
||||
void SampleCxxModule::load(__unused folly::dynamic args, Callback cb) {
|
||||
dynamic d = dynamic::object;
|
||||
for (const auto& p : sample_->load()) {
|
||||
for (const auto &p : sample_->load()) {
|
||||
d.insert(p.first, p.second);
|
||||
}
|
||||
cb({d});
|
||||
}
|
||||
|
||||
}}}
|
||||
} // namespace samples
|
||||
} // namespace xplat
|
||||
} // namespace facebook
|
||||
|
||||
// By convention, the function name should be the same as the class name.
|
||||
facebook::xplat::module::CxxModule *SampleCxxModule() {
|
||||
return new facebook::xplat::samples::SampleCxxModule(
|
||||
folly::make_unique<facebook::xplat::samples::Sample>());
|
||||
std::make_unique<facebook::xplat::samples::Sample>());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user