From 431daf9c6e6373f9c272d170b37c74c5b0c84c4f Mon Sep 17 00:00:00 2001 From: "Brian S. O'Neill" Date: Thu, 15 Feb 2007 16:22:51 +0000 Subject: Fixed verify error in generation of markPropertiesDirty. --- RELEASE-NOTES.txt | 1 + .../java/com/amazon/carbonado/spi/StorableGenerator.java | 16 +++++----------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 0f04527..e2d3ede 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -6,6 +6,7 @@ Carbonado change history - Fixed bug when decoding old Storable generations - new properties must be cleared. Otherwise, indexes on newly added properties might not get updated. - Added system properties to control performance characteristics of MergeSortBuffer. +- Fixed verify error in generation of markPropertiesDirty. 1.1-BETA9 to 1.1-BETA10 ------------------------------- diff --git a/src/main/java/com/amazon/carbonado/spi/StorableGenerator.java b/src/main/java/com/amazon/carbonado/spi/StorableGenerator.java index aad7d87..93f9b38 100644 --- a/src/main/java/com/amazon/carbonado/spi/StorableGenerator.java +++ b/src/main/java/com/amazon/carbonado/spi/StorableGenerator.java @@ -2382,15 +2382,7 @@ public final class StorableGenerator { if ((ordinal & 0xf) == 0 || ordinal >= count) { String stateFieldName = PROPERTY_STATE_FIELD_NAME + ((ordinal - 1) >> 4); if (name == MARK_ALL_PROPERTIES_DIRTY) { - if (orMask == 0) { - if (andMask != 0) { - b.loadThis(); - b.loadField(stateFieldName, TypeDesc.INT); - b.loadConstant(~andMask); - b.math(Opcode.IAND); - b.storeField(stateFieldName, TypeDesc.INT); - } - } else { + if (orMask != 0 || andMask != 0) { b.loadThis(); // [this b.loadThis(); // [this, this b.loadField(stateFieldName, TypeDesc.INT); // [this, this.stateField @@ -2398,8 +2390,10 @@ public final class StorableGenerator { b.loadConstant(~andMask); b.math(Opcode.IAND); } - b.loadConstant(orMask); - b.math(Opcode.IOR); + if (orMask != 0) { + b.loadConstant(orMask); + b.math(Opcode.IOR); + } b.storeField(stateFieldName, TypeDesc.INT); } } else { -- cgit v1.2.3