diff options
author | Brian S. O'Neill <bronee@gmail.com> | 2007-02-15 16:22:51 +0000 |
---|---|---|
committer | Brian S. O'Neill <bronee@gmail.com> | 2007-02-15 16:22:51 +0000 |
commit | 431daf9c6e6373f9c272d170b37c74c5b0c84c4f (patch) | |
tree | 5e38b93eaa9ce7a712cddf56708666fac5717ca4 | |
parent | bbe142577feebb644751d6fe515e79f9a31aeb34 (diff) |
Fixed verify error in generation of markPropertiesDirty.
-rw-r--r-- | RELEASE-NOTES.txt | 1 | ||||
-rw-r--r-- | src/main/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<S extends Storable> { 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<S extends Storable> { 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 {
|