summaryrefslogtreecommitdiff
path: root/storage/connect/bson.cpp
diff options
context:
space:
mode:
authorNikita Malyavin <nikitamalyavin@gmail.com>2021-05-05 23:17:20 +0300
committerNikita Malyavin <nikitamalyavin@gmail.com>2021-05-05 23:57:11 +0300
commit3f55c569514679d98e09e71286ca28a8ac667a71 (patch)
tree4347fbb2238d1a97e5e1166f9e7b7b7adba165ce /storage/connect/bson.cpp
parentca1dc0789b7e724128d1369977e2f70fb9d69bb5 (diff)
parenta4139f8d68bd31e80ff6202c093cd232c194ddfd (diff)
downloadmariadb-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.cpp18
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
/***********************************************************************/