summaryrefslogtreecommitdiff
path: root/jsonpatch.py
diff options
context:
space:
mode:
authorBock <charles.v.bock@intel.com>2021-03-11 17:15:15 -0700
committerBock <charles.v.bock@intel.com>2021-03-11 17:15:15 -0700
commit5cdb066ab6bfd0f28e7bd78a61f13bf4ff90d00d (patch)
treedadc82e6ef8dab9da51dc9adf110c57d06b9372f /jsonpatch.py
parent7a6d76ada4b990b1951831a42a08924de5775c2d (diff)
downloadpython-json-patch-5cdb066ab6bfd0f28e7bd78a61f13bf4ff90d00d.tar.gz
closes #129
Diffstat (limited to 'jsonpatch.py')
-rw-r--r--jsonpatch.py14
1 files changed, 8 insertions, 6 deletions
diff --git a/jsonpatch.py b/jsonpatch.py
index 429d40b..bd7701b 100644
--- a/jsonpatch.py
+++ b/jsonpatch.py
@@ -699,27 +699,29 @@ class DiffBuilder(object):
root[:] = [root, root, None]
def store_index(self, value, index, st):
+ typed_key = (value, type(value))
try:
storage = self.index_storage[st]
- stored = storage.get(value)
+ stored = storage.get(typed_key)
if stored is None:
- storage[value] = [index]
+ storage[typed_key] = [index]
else:
- storage[value].append(index)
+ storage[typed_key].append(index)
except TypeError:
- self.index_storage2[st].append((value, index))
+ self.index_storage2[st].append((typed_key, index))
def take_index(self, value, st):
+ typed_key = (value, type(value))
try:
- stored = self.index_storage[st].get(value)
+ stored = self.index_storage[st].get(typed_key)
if stored:
return stored.pop()
except TypeError:
storage = self.index_storage2[st]
for i in range(len(storage)-1, -1, -1):
- if storage[i][0] == value:
+ if storage[i][0] == typed_key:
return storage.pop(i)[1]
def insert(self, op):