Commit 1b9cab7f authored by Milo Yip's avatar Milo Yip

Try to fix more gcc/clang compilation errors

parent 601a62e5
...@@ -26,7 +26,7 @@ public: ...@@ -26,7 +26,7 @@ public:
typedef typename EncodingType::Ch Ch; typedef typename EncodingType::Ch Ch;
struct Token { struct Token {
const typename Ch* name; const Ch* name;
SizeType length; SizeType length;
SizeType index; //!< A valid index if not equal to kInvalidIndex. SizeType index; //!< A valid index if not equal to kInvalidIndex.
}; };
...@@ -149,11 +149,12 @@ public: ...@@ -149,11 +149,12 @@ public:
ValueType* v = &root; ValueType* v = &root;
bool exist = true; bool exist = true;
for (Token *t = tokens_; t != tokens_ + tokenCount_; ++t) { for (Token *t = tokens_; t != tokens_ + tokenCount_; ++t) {
if (v->GetType() != kObjectType && v->GetType() != kArrayType) if (v->GetType() != kObjectType && v->GetType() != kArrayType) {
if (t->index == kInvalidIndex) if (t->index == kInvalidIndex)
v->SetObject(); v->SetObject();
else else
v->SetArray(); v->SetArray();
}
switch (v->GetType()) { switch (v->GetType()) {
case kObjectType: case kObjectType:
...@@ -220,8 +221,10 @@ public: ...@@ -220,8 +221,10 @@ public:
ValueType& GetWithDefault(ValueType& root, const ValueType& defaultValue, typename ValueType::AllocatorType& allocator) const { ValueType& GetWithDefault(ValueType& root, const ValueType& defaultValue, typename ValueType::AllocatorType& allocator) const {
bool alreadyExist; bool alreadyExist;
Value& v = Create(root, allocator, &alreadyExist); Value& v = Create(root, allocator, &alreadyExist);
if (!alreadyExist) if (!alreadyExist) {
v = Value(defaultValue, allocator); Value clone(defaultValue, allocator);
v = clone;
}
return v; return v;
} }
...@@ -332,7 +335,7 @@ typename T::ValueType& CreateValueByPointer(T& root, const GenericPointer<typena ...@@ -332,7 +335,7 @@ typename T::ValueType& CreateValueByPointer(T& root, const GenericPointer<typena
template <typename T, typename CharType, size_t N> template <typename T, typename CharType, size_t N>
typename T::ValueType& CreateValueByPointer(T& root, const CharType(&source)[N], typename T::AllocatorType& a) { typename T::ValueType& CreateValueByPointer(T& root, const CharType(&source)[N], typename T::AllocatorType& a) {
const Pointer pointer(source, N - 1); const GenericPointer<typename T::ValueType> pointer(source, N - 1);
return pointer.Create(root, a); return pointer.Create(root, a);
} }
...@@ -348,13 +351,13 @@ const typename T::ValueType* GetValueByPointer(const T& root, const GenericPoint ...@@ -348,13 +351,13 @@ const typename T::ValueType* GetValueByPointer(const T& root, const GenericPoint
template <typename T, typename CharType, size_t N> template <typename T, typename CharType, size_t N>
typename T::ValueType* GetValueByPointer(T& root, const CharType (&source)[N]) { typename T::ValueType* GetValueByPointer(T& root, const CharType (&source)[N]) {
const Pointer pointer(source, N - 1); const GenericPointer<typename T::ValueType> pointer(source, N - 1);
return pointer.Get(root); return pointer.Get(root);
} }
template <typename T, typename CharType, size_t N> template <typename T, typename CharType, size_t N>
const typename T::ValueType* GetValueByPointer(const T& root, const CharType(&source)[N]) { const typename T::ValueType* GetValueByPointer(const T& root, const CharType(&source)[N]) {
const Pointer pointer(source, N - 1); const GenericPointer<typename T::ValueType> pointer(source, N - 1);
return pointer.Get(root); return pointer.Get(root);
} }
...@@ -365,7 +368,7 @@ typename T::ValueType& GetValueByPointerWithDefault(T& root, const GenericPointe ...@@ -365,7 +368,7 @@ typename T::ValueType& GetValueByPointerWithDefault(T& root, const GenericPointe
template <typename T, typename CharType, size_t N> template <typename T, typename CharType, size_t N>
typename T::ValueType& GetValueByPointerWithDefault(T& root, const CharType(&source)[N], const typename T::ValueType& defaultValue, typename T::AllocatorType& a) { typename T::ValueType& GetValueByPointerWithDefault(T& root, const CharType(&source)[N], const typename T::ValueType& defaultValue, typename T::AllocatorType& a) {
const Pointer pointer(source, N - 1); const GenericPointer<typename T::ValueType> pointer(source, N - 1);
return pointer.GetWithDefault(root, defaultValue, a); return pointer.GetWithDefault(root, defaultValue, a);
} }
...@@ -376,7 +379,7 @@ typename T::ValueType& SetValueByPointer(T& root, const GenericPointer<typename ...@@ -376,7 +379,7 @@ typename T::ValueType& SetValueByPointer(T& root, const GenericPointer<typename
template <typename T, typename CharType, size_t N> template <typename T, typename CharType, size_t N>
typename T::ValueType& SetValueByPointer(T& root, const CharType(&source)[N], typename T::ValueType& value, typename T::AllocatorType& a) { typename T::ValueType& SetValueByPointer(T& root, const CharType(&source)[N], typename T::ValueType& value, typename T::AllocatorType& a) {
const Pointer pointer(source, N - 1); const GenericPointer<typename T::ValueType> pointer(source, N - 1);
return pointer.Set(root, value , a); return pointer.Set(root, value , a);
} }
...@@ -387,7 +390,7 @@ typename T::ValueType& SwapValueByPointer(T& root, const GenericPointer<typename ...@@ -387,7 +390,7 @@ typename T::ValueType& SwapValueByPointer(T& root, const GenericPointer<typename
template <typename T, typename CharType, size_t N> template <typename T, typename CharType, size_t N>
typename T::ValueType& SwapValueByPointer(T& root, const CharType(&source)[N], typename T::ValueType& value, typename T::AllocatorType& a) { typename T::ValueType& SwapValueByPointer(T& root, const CharType(&source)[N], typename T::ValueType& value, typename T::AllocatorType& a) {
const Pointer pointer(source, N - 1); const GenericPointer<typename T::ValueType> pointer(source, N - 1);
return pointer.Swap(root, value, a); return pointer.Swap(root, value, a);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment