Skip to content

Commit 3a2c07b

Browse files
authored
Use std::unique_ptr and std::shared_ptr. (#514)
* Use std::unique_ptr and std::shared_ptr. * Can't use std::make_unique for android. * Don't use rvalue reference for unique_ptr. * Address code review comments. * Include <utility> for std::forward.
1 parent c4e5684 commit 3a2c07b

14 files changed

+77
-34
lines changed

firestore/integration_test_internal/src/android/promise_android_test.cc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
#include "firestore/src/android/promise_android.h"
44

5+
#include <memory>
56
#include <string>
67

78
#include "android/cancellation_token_source.h"
89
#include "android/firestore_integration_test_android.h"
910
#include "android/task_completion_source.h"
10-
#include "app/memory/unique_ptr.h"
1111
#include "app/src/assert.h"
1212
#include "app/src/mutex.h"
1313
#include "app_framework.h"
@@ -17,6 +17,7 @@
1717
#include "firestore/src/android/exception_android.h"
1818
#include "firestore/src/android/firestore_android.h"
1919
#include "firestore/src/android/promise_factory_android.h"
20+
#include "firestore/src/common/make_unique.h"
2021
#include "firestore/src/include/firebase/firestore.h"
2122
#include "firestore/src/jni/env.h"
2223
#include "firestore/src/jni/integer.h"
@@ -195,12 +196,12 @@ class TestCompletion : public TestCompletionBase<PublicType, InternalType> {
195196
if (result == nullptr) {
196197
result_.reset(nullptr);
197198
} else {
198-
result_ = MakeUnique<PublicType>(*result);
199+
result_ = make_unique<PublicType>(*result);
199200
}
200201
}
201202

202203
private:
203-
UniquePtr<PublicType> result_;
204+
std::unique_ptr<PublicType> result_;
204205
};
205206

206207
// A specialization of `TestCompletionBase` that handles void `PublicType` and

firestore/integration_test_internal/src/firestore_integration_test.cc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
#include <cstdlib>
66
#include <fstream>
7+
#include <memory>
78
#include <sstream>
89

910
#if !defined(__ANDROID__)
@@ -126,13 +127,13 @@ Firestore* FirestoreIntegrationTest::TestFirestore(
126127

127128
App* app = GetApp(name.c_str());
128129
if (apps_.find(app) == apps_.end()) {
129-
apps_[app] = UniquePtr<App>(app);
130+
apps_[app] = std::unique_ptr<App>(app);
130131
}
131132

132133
// Firestore::set_log_level(LogLevel::kLogLevelDebug);
133134

134135
Firestore* db = new Firestore(CreateTestFirestoreInternal(app));
135-
firestores_[db] = FirestoreInfo(name, UniquePtr<Firestore>(db));
136+
firestores_[db] = FirestoreInfo(name, std::unique_ptr<Firestore>(db));
136137

137138
LocateEmulator(db);
138139
InitializeFirestore(db);

firestore/integration_test_internal/src/firestore_integration_test.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
#include <cstdio>
77
#include <iostream>
88
#include <map>
9+
#include <memory>
910
#include <string>
1011
#include <unordered_map>
1112
#include <vector>
1213

13-
#include "app/memory/unique_ptr.h"
1414
#include "app/meta/move.h"
1515
#include "app/src/assert.h"
1616
#include "app/src/include/firebase/internal/common.h"
@@ -331,23 +331,23 @@ class FirestoreIntegrationTest : public testing::Test {
331331
class FirestoreInfo {
332332
public:
333333
FirestoreInfo() = default;
334-
FirestoreInfo(const std::string& name, UniquePtr<Firestore>&& firestore)
335-
: name_(name), firestore_(Move(firestore)) {}
334+
FirestoreInfo(const std::string& name, std::unique_ptr<Firestore> firestore)
335+
: name_(name), firestore_(std::move(firestore)) {}
336336

337337
const std::string& name() const { return name_; }
338338
Firestore* firestore() const { return firestore_.get(); }
339339
void ReleaseFirestore() { firestore_.release(); }
340340

341341
private:
342342
std::string name_;
343-
UniquePtr<Firestore> firestore_;
343+
std::unique_ptr<Firestore> firestore_;
344344
};
345345

346346
// The Firestore and App instance caches.
347347
// Note that `firestores_` is intentionally ordered *after* `apps_` so that
348348
// the Firestore pointers will be deleted before the App pointers when this
349349
// object is destructed.
350-
mutable std::unordered_map<App*, UniquePtr<App>> apps_;
350+
mutable std::unordered_map<App*, std::unique_ptr<App>> apps_;
351351
mutable std::unordered_map<Firestore*, FirestoreInfo> firestores_;
352352
};
353353

firestore/integration_test_internal/src/firestore_test.cc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#include "firebase/firestore.h"
44

55
#include <algorithm>
6+
#include <memory>
67

78
#if !defined(__ANDROID__)
89
#include <future> // NOLINT(build/c++11)
@@ -18,7 +19,6 @@
1819
#include "firestore/src/jni/task.h"
1920
#endif // defined(__ANDROID__)
2021

21-
#include "app/memory/unique_ptr.h"
2222
#include "app/src/mutex.h"
2323
#include "auth/src/include/firebase/auth.h"
2424
#include "firestore/src/common/macros.h"
@@ -1456,7 +1456,7 @@ TEST_F(FirestoreIntegrationTest, AuthWorks) {
14561456
EXPECT_NE(app, nullptr);
14571457

14581458
InitResult init_result;
1459-
auto auth = UniquePtr<Auth>(Auth::GetAuth(app, &init_result));
1459+
auto auth = std::unique_ptr<Auth>(Auth::GetAuth(app, &init_result));
14601460
#if defined(__ANDROID__)
14611461
if (init_result != kInitResultSuccess) {
14621462
// On Android, it's possible for the Auth library built at head to be too
@@ -1471,7 +1471,8 @@ TEST_F(FirestoreIntegrationTest, AuthWorks) {
14711471
ASSERT_EQ(init_result, kInitResultSuccess);
14721472
#endif
14731473

1474-
auto db = UniquePtr<Firestore>(Firestore::GetInstance(app, &init_result));
1474+
auto db =
1475+
std::unique_ptr<Firestore>(Firestore::GetInstance(app, &init_result));
14751476
EXPECT_EQ(init_result, kInitResultSuccess);
14761477

14771478
// Performing a write will initialize Firestore's worker and get the current

firestore/integration_test_internal/src/jni/env_test.cc

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
// Copyright 2021 Google LLC
22

3+
#include <memory>
4+
35
#include "firestore/src/jni/env.h"
46

57
#include "Firestore/core/src/util/firestore_exceptions.h"
6-
#include "app/memory/unique_ptr.h"
78
#include "app/meta/move.h"
89
#include "firestore/src/android/exception_android.h"
910
#include "firestore/src/common/macros.h"
11+
#include "firestore/src/common/make_unique.h"
1012
#include "firestore/src/jni/array.h"
1113
#include "firestore_integration_test.h"
1214
#include "gtest/gtest.h"
@@ -17,7 +19,7 @@ namespace jni {
1719

1820
class EnvTest : public FirestoreIntegrationTest {
1921
public:
20-
EnvTest() : env_(MakeUnique<Env>(GetEnv())) {}
22+
EnvTest() : env_(make_unique<Env>(GetEnv())) {}
2123

2224
~EnvTest() override {
2325
// Ensure that after the test is done that any pending exception is cleared
@@ -32,7 +34,7 @@ class EnvTest : public FirestoreIntegrationTest {
3234
// compiler to propagate this into `EnvTest`'s destructor, but this conflicts
3335
// with the declaration of the parent class. Holding `Env` with a unique
3436
// pointer sidesteps this restriction.
35-
UniquePtr<Env> env_;
37+
std::unique_ptr<Env> env_;
3638
};
3739

3840
#if FIRESTORE_HAVE_EXCEPTIONS

firestore/src/android/field_value_android.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -278,11 +278,11 @@ void FieldValueInternal::EnsureCachedBlob(Env& env) const {
278278
Local<Array<uint8_t>> bytes = blob.ToBytes(env);
279279
size_t size = bytes.Size(env);
280280

281-
auto result = MakeShared<std::vector<uint8_t>>(size);
281+
auto result = std::make_shared<std::vector<uint8_t>>(size);
282282
env.GetArrayRegion(bytes, 0, size, &(result->front()));
283283

284284
if (env.ok()) {
285-
cached_blob_ = Move(result);
285+
cached_blob_ = std::move(result);
286286
}
287287
}
288288

firestore/src/android/field_value_android.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
#define FIREBASE_FIRESTORE_CLIENT_CPP_SRC_ANDROID_FIELD_VALUE_ANDROID_H_
55

66
#include <cstdint>
7+
#include <memory>
78
#include <string>
89

9-
#include "app/memory/shared_ptr.h"
1010
#include "firebase/firestore/geo_point.h"
1111
#include "firebase/firestore/timestamp.h"
1212
#include "firestore/src/include/firebase/firestore/document_reference.h"
@@ -101,7 +101,7 @@ class FieldValueInternal {
101101
// Below are cached type information. It is costly to get type info from
102102
// jobject of Object type. So we cache it if we have already known.
103103
mutable Type cached_type_ = Type::kNull;
104-
mutable SharedPtr<std::vector<uint8_t>> cached_blob_;
104+
mutable std::shared_ptr<std::vector<uint8_t>> cached_blob_;
105105
};
106106

107107
inline jni::Object ToJava(const FieldValue& value) {

firestore/src/android/firestore_android.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
#include "firestore/src/android/transaction_android.h"
4141
#include "firestore/src/android/wrapper.h"
4242
#include "firestore/src/android/write_batch_android.h"
43+
#include "firestore/src/common/make_unique.h"
4344
#include "firestore/src/include/firebase/firestore.h"
4445
#include "firestore/src/jni/array.h"
4546
#include "firestore/src/jni/array_list.h"
@@ -263,7 +264,7 @@ FirestoreInternal::FirestoreInternal(App* app) {
263264
FIREBASE_ASSERT(java_user_callback_executor.get() != nullptr);
264265
user_callback_executor_ = java_user_callback_executor;
265266

266-
promises_ = MakeUnique<PromiseFactory<AsyncFn>>(this);
267+
promises_ = make_unique<PromiseFactory<AsyncFn>>(this);
267268
}
268269

269270
/* static */

firestore/src/android/firestore_android.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
#include <cstdint>
77
#include <functional>
88
#include <list>
9+
#include <memory>
910
#include <unordered_set>
1011

11-
#include "app/memory/unique_ptr.h"
1212
#include "app/src/cleanup_notifier.h"
1313
#include "app/src/future_manager.h"
1414
#include "app/src/include/firebase/app.h"
@@ -192,7 +192,7 @@ class FirestoreInternal {
192192
std::list<LambdaEventListener<LoadBundleTaskProgress>> bundle_listeners_;
193193

194194
FutureManager future_manager_;
195-
UniquePtr<PromiseFactory<AsyncFn>> promises_;
195+
std::unique_ptr<PromiseFactory<AsyncFn>> promises_;
196196

197197
CleanupNotifier cleanup_;
198198
};

firestore/src/android/promise_android.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,16 @@
44
#define FIREBASE_FIRESTORE_CLIENT_CPP_SRC_ANDROID_PROMISE_ANDROID_H_
55

66
#include <jni.h>
7+
#include <memory>
78

8-
#include "app/memory/unique_ptr.h"
99
#include "app/src/reference_counted_future_impl.h"
1010
#include "app/src/util_android.h"
1111
#include "firestore/src/android/converter_android.h"
1212
#include "firestore/src/android/document_snapshot_android.h"
1313
#include "firestore/src/android/exception_android.h"
1414
#include "firestore/src/android/firestore_android.h"
1515
#include "firestore/src/android/query_snapshot_android.h"
16+
#include "firestore/src/common/make_unique.h"
1617
#include "firestore/src/jni/env.h"
1718
#include "firestore/src/jni/object.h"
1819
#include "firestore/src/jni/task.h"
@@ -76,7 +77,7 @@ class Promise {
7677
Promise(ReferenceCountedFutureImpl* impl,
7778
FirestoreInternal* firestore,
7879
Completion* completion)
79-
: completer_(MakeUnique<Completer<PublicType, InternalType>>(
80+
: completer_(make_unique<Completer<PublicType, InternalType>>(
8081
impl, firestore, completion)),
8182
impl_(impl) {}
8283

@@ -191,7 +192,7 @@ class Promise {
191192
}
192193
}
193194

194-
UniquePtr<Completer<PublicType, InternalType>> completer_;
195+
std::unique_ptr<Completer<PublicType, InternalType>> completer_;
195196

196197
// Keep these values separate from the Completer in case completion happens
197198
// before the future is constructed.

0 commit comments

Comments
 (0)