diff options
author | Nikita Malyavin <nikitamalyavin@gmail.com> | 2021-05-05 23:17:20 +0300 |
---|---|---|
committer | Nikita Malyavin <nikitamalyavin@gmail.com> | 2021-05-05 23:57:11 +0300 |
commit | 3f55c569514679d98e09e71286ca28a8ac667a71 (patch) | |
tree | 4347fbb2238d1a97e5e1166f9e7b7b7adba165ce /storage/connect/bson.cpp | |
parent | ca1dc0789b7e724128d1369977e2f70fb9d69bb5 (diff) | |
parent | a4139f8d68bd31e80ff6202c093cd232c194ddfd (diff) | |
download | mariadb-git-mariadb-10.5.10.tar.gz |
Merge branch bb-10.4-release into bb-10.5-releasemariadb-10.5.10
Diffstat (limited to 'storage/connect/bson.cpp')
-rw-r--r-- | storage/connect/bson.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/storage/connect/bson.cpp b/storage/connect/bson.cpp index 3c33551cb68..a0a421657bd 100644 --- a/storage/connect/bson.cpp +++ b/storage/connect/bson.cpp @@ -1138,6 +1138,9 @@ PBVAL BJSON::GetArrayValue(PBVAL bap, int n) CheckType(bap, TYPE_JAR); int i = 0; + if (n < 0) + n += GetArraySize(bap); + for (PBVAL bvp = GetArray(bap); bvp; bvp = GetNext(bvp), i++) if (i == n) return bvp; @@ -1348,12 +1351,17 @@ PBVAL BJSON::NewVal(PVAL valp) /***********************************************************************/ /* Sub-allocate and initialize a BVAL from another BVAL. */ /***********************************************************************/ -PBVAL BJSON::DupVal(PBVAL bvlp) { - PBVAL bvp = NewVal(); +PBVAL BJSON::DupVal(PBVAL bvlp) +{ + if (bvlp) { + PBVAL bvp = NewVal(); + + *bvp = *bvlp; + bvp->Next = 0; + return bvp; + } else + return NULL; - *bvp = *bvlp; - bvp->Next = 0; - return bvp; } // end of DupVal /***********************************************************************/ |