diff --git a/src/browser/BrowserCodeReader.ts b/src/browser/BrowserCodeReader.ts index b96c7469..02225796 100644 --- a/src/browser/BrowserCodeReader.ts +++ b/src/browser/BrowserCodeReader.ts @@ -1046,7 +1046,12 @@ export class BrowserCodeReader { * Call the encapsulated readers decode */ public decodeBitmap(binaryBitmap: BinaryBitmap): Result { - return this.reader.decode(binaryBitmap, this._hints); + try { + return this.reader.decode(binaryBitmap, this._hints); + } finally { + // Readers need to be reset before being reused on another bitmap. + this.reader.reset(); + } } /** diff --git a/src/browser/BrowserMultiFormatReader.ts b/src/browser/BrowserMultiFormatReader.ts index 3d07406c..c4126d8d 100644 --- a/src/browser/BrowserMultiFormatReader.ts +++ b/src/browser/BrowserMultiFormatReader.ts @@ -29,6 +29,11 @@ export class BrowserMultiFormatReader extends BrowserCodeReader { * attention to the hints set in the constructor function */ public decodeBitmap(binaryBitmap: BinaryBitmap): Result { - return this.reader.decodeWithState(binaryBitmap); + try { + return this.reader.decodeWithState(binaryBitmap); + } finally { + // Readers need to be reset before being reused on another bitmap. + this.reader.reset(); + } } }