taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit e8f362ccfea683fe16ce68b956f068ffa0b001b1
parent 61558e00ae6ad9df601a284d99d4806002a35dad
Author: Florian Dold <florian.dold@gmail.com>
Date:   Thu, 21 Nov 2019 20:39:53 +0100

idb-bridge: fix deletion

Diffstat:
Mpackages/idb-bridge/package.json | 2+-
Mpackages/idb-bridge/src/MemoryBackend.ts | 12++++++++++--
2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/packages/idb-bridge/package.json b/packages/idb-bridge/package.json @@ -1,6 +1,6 @@ { "name": "idb-bridge", - "version": "0.0.13", + "version": "0.0.14", "description": "IndexedDB implementation that uses SQLite3 as storage", "main": "./build/index.js", "types": "./build/index.d.ts", diff --git a/packages/idb-bridge/src/MemoryBackend.ts b/packages/idb-bridge/src/MemoryBackend.ts @@ -871,14 +871,22 @@ export class MemoryBackend implements Backend { } else { currKey = range.lower; // We have a range with an lowerOpen lower bound, so don't start - // deleting the upper bound. Instead start with the next higher key. + // deleting the lower bound. Instead start with the next higher key. if (range.lowerOpen && currKey !== undefined) { currKey = modifiedData.nextHigherKey(currKey); } } - // invariant: (currKey is undefined) or (currKey is a valid key) + // make sure that currKey is either undefined or pointing to an + // existing object. + let firstValue = modifiedData.get(currKey); + if (!firstValue) { + if (currKey !== undefined) { + currKey = modifiedData.nextHigherKey(currKey); + } + } + // loop invariant: (currKey is undefined) or (currKey is a valid key) while (true) { if (currKey === undefined) { // nothing more to delete!