summaryrefslogtreecommitdiff
path: root/src/main/java/com/amazon/carbonado/spi
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/amazon/carbonado/spi')
-rw-r--r--src/main/java/com/amazon/carbonado/spi/StorableGenerator.java16
1 files changed, 5 insertions, 11 deletions
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 {