aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/core/src/firebase/firestore/model
diff options
context:
space:
mode:
authorGravatar rsgowman <rgowman@google.com>2018-02-09 12:15:21 -0500
committerGravatar GitHub <noreply@github.com>2018-02-09 12:15:21 -0500
commit274fe52bbf817ef9d35638effb4de08454acfc6d (patch)
treed422177d355315a3314578c8554e4ebc86d1e042 /Firestore/core/src/firebase/firestore/model
parentecef4aa308c213c000d115123824d55482ffbdad (diff)
cmake build fixes (#770)
* Fix nanopb (in cmake build) Look for binaries in the src dir (since that's where we build now.) This error would be masked if a previous build had completed prior to switching nanopb to build out of src. Also, don't patch the protoc path multiple times. This could be triggered by (eg) 'make && make clean && make'. * Add resource_path.{h,cc} to the cmake build * Fix signed/unsigned int comparison warnings * Ensure FieldValue tag_ is initialized during cp/mv ctor. Otherwise, the assignment operator attempts to deallocate based on the (uninitialized) tag_ variable, posssibly leading to segfaults. * Fix tests that throw exceptions. The (previous) tests checked to ensure that an abort() occurs, but if ABSL_HAVE_EXCEPTIONS is defined on non-macos (which is currently the default) then the assertions will throw a std::logic_error rather than abort()ing. On macos, an exception is thrown too, but the exception doesn't derrive from std::exception, so ASSERT_DEATH_* doesn't catch it (hence why ASSERT_DEATH_* actually works.) To resolve this, I've switched to ASSERT_ANY_THROW.
Diffstat (limited to 'Firestore/core/src/firebase/firestore/model')
-rw-r--r--Firestore/core/src/firebase/firestore/model/CMakeLists.txt2
-rw-r--r--Firestore/core/src/firebase/firestore/model/base_path.h2
-rw-r--r--Firestore/core/src/firebase/firestore/model/field_path.cc4
-rw-r--r--Firestore/core/src/firebase/firestore/model/field_path.h2
-rw-r--r--Firestore/core/src/firebase/firestore/model/field_value.h4
-rw-r--r--Firestore/core/src/firebase/firestore/model/resource_path.cc1
-rw-r--r--Firestore/core/src/firebase/firestore/model/resource_path.h5
7 files changed, 12 insertions, 8 deletions
diff --git a/Firestore/core/src/firebase/firestore/model/CMakeLists.txt b/Firestore/core/src/firebase/firestore/model/CMakeLists.txt
index 8bdbe18..df602f9 100644
--- a/Firestore/core/src/firebase/firestore/model/CMakeLists.txt
+++ b/Firestore/core/src/firebase/firestore/model/CMakeLists.txt
@@ -22,6 +22,8 @@ cc_library(
field_path.h
field_value.cc
field_value.h
+ resource_path.cc
+ resource_path.h
timestamp.cc
timestamp.h
DEPENDS
diff --git a/Firestore/core/src/firebase/firestore/model/base_path.h b/Firestore/core/src/firebase/firestore/model/base_path.h
index f5a8ab7..accce27 100644
--- a/Firestore/core/src/firebase/firestore/model/base_path.h
+++ b/Firestore/core/src/firebase/firestore/model/base_path.h
@@ -166,7 +166,7 @@ class BasePath {
}
BasePath(std::initializer_list<std::string> list) : segments_{list} {
}
- BasePath(SegmentsT&& segments) : segments_{std::move(segments)} {
+ explicit BasePath(SegmentsT&& segments) : segments_{std::move(segments)} {
}
private:
diff --git a/Firestore/core/src/firebase/firestore/model/field_path.cc b/Firestore/core/src/firebase/firestore/model/field_path.cc
index 6c40600..0da2319 100644
--- a/Firestore/core/src/firebase/firestore/model/field_path.cc
+++ b/Firestore/core/src/firebase/firestore/model/field_path.cc
@@ -51,7 +51,7 @@ bool IsValidIdentifier(const std::string& segment) {
(first < 'A' || first > 'Z')) {
return false;
}
- for (int i = 1; i != segment.size(); ++i) {
+ for (size_t i = 1; i != segment.size(); ++i) {
const unsigned char c = segment[i];
if (c != '_' && (c < 'a' || c > 'z') && (c < 'A' || c > 'Z') &&
(c < '0' || c > '9')) {
@@ -93,7 +93,7 @@ FieldPath FieldPath::FromServerFormat(const absl::string_view path) {
// Inside backticks, dots are treated literally.
bool inside_backticks = false;
- int i = 0;
+ size_t i = 0;
while (i < path.size()) {
const char c = path[i];
// std::string (and string_view) may contain embedded nulls. For full
diff --git a/Firestore/core/src/firebase/firestore/model/field_path.h b/Firestore/core/src/firebase/firestore/model/field_path.h
index 00b658a..ba6e2bd 100644
--- a/Firestore/core/src/firebase/firestore/model/field_path.h
+++ b/Firestore/core/src/firebase/firestore/model/field_path.h
@@ -82,7 +82,7 @@ class FieldPath : public impl::BasePath<FieldPath> {
}
private:
- FieldPath(SegmentsT&& segments) : BasePath{std::move(segments)} {
+ explicit FieldPath(SegmentsT&& segments) : BasePath{std::move(segments)} {
}
// So that methods of base can construct FieldPath using the private
diff --git a/Firestore/core/src/firebase/firestore/model/field_value.h b/Firestore/core/src/firebase/firestore/model/field_value.h
index 4cd0b3d..d43b23f 100644
--- a/Firestore/core/src/firebase/firestore/model/field_value.h
+++ b/Firestore/core/src/firebase/firestore/model/field_value.h
@@ -69,7 +69,7 @@ class FieldValue {
// position instead, see the doc comment above.
};
- FieldValue() : tag_(Type::Null) {
+ FieldValue() {
}
// Do not inline these ctor/dtor below, which contain call to non-trivial
@@ -123,7 +123,7 @@ class FieldValue {
*/
void SwitchTo(const Type type);
- Type tag_;
+ Type tag_ = Type::Null;
union {
// There is no null type as tag_ alone is enough for Null FieldValue.
bool boolean_value_;
diff --git a/Firestore/core/src/firebase/firestore/model/resource_path.cc b/Firestore/core/src/firebase/firestore/model/resource_path.cc
index 36218e9..a4f921f 100644
--- a/Firestore/core/src/firebase/firestore/model/resource_path.cc
+++ b/Firestore/core/src/firebase/firestore/model/resource_path.cc
@@ -18,6 +18,7 @@
#include <algorithm>
#include <utility>
+#include <vector>
#include "Firestore/core/src/firebase/firestore/util/firebase_assert.h"
#include "absl/strings/str_join.h"
diff --git a/Firestore/core/src/firebase/firestore/model/resource_path.h b/Firestore/core/src/firebase/firestore/model/resource_path.h
index 481d32f..b0853c6 100644
--- a/Firestore/core/src/firebase/firestore/model/resource_path.h
+++ b/Firestore/core/src/firebase/firestore/model/resource_path.h
@@ -19,6 +19,7 @@
#include <initializer_list>
#include <string>
+#include <utility>
#include "Firestore/core/src/firebase/firestore/model/base_path.h"
#include "absl/strings/string_view.h"
@@ -69,7 +70,7 @@ class ResourcePath : public impl::BasePath<ResourcePath> {
}
private:
- ResourcePath(SegmentsT&& segments) : BasePath{std::move(segments)} {
+ explicit ResourcePath(SegmentsT&& segments) : BasePath{std::move(segments)} {
}
// So that methods of base can construct ResourcePath using the private
@@ -81,4 +82,4 @@ class ResourcePath : public impl::BasePath<ResourcePath> {
} // namespace firestore
} // namespace firebase
-#endif
+#endif // FIRESTORE_CORE_SRC_FIREBASE_FIRESTORE_MODEL_RESOURCE_PATH_H_