summaryrefslogtreecommitdiff
path: root/Chalice/src
diff options
context:
space:
mode:
authorGravatar stefanheule <unknown>2012-02-25 03:23:00 -0800
committerGravatar stefanheule <unknown>2012-02-25 03:23:00 -0800
commita6788b834573f72131f78a2d445ce9c1c4c97f5a (patch)
tree2eecd9a4b8994531f0365096e48fb4ed2ceb6c67 /Chalice/src
parent2f08c4fe4ca32c0fa2a55dbfa969e1edb269b642 (diff)
Chalice: Do not remove permission from the secondary mask during the exhale that takes place during unfold.
Diffstat (limited to 'Chalice/src')
-rw-r--r--Chalice/src/main/scala/Translator.scala2
1 files changed, 1 insertions, 1 deletions
diff --git a/Chalice/src/main/scala/Translator.scala b/Chalice/src/main/scala/Translator.scala
index cd3fb270..a943e923 100644
--- a/Chalice/src/main/scala/Translator.scala
+++ b/Chalice/src/main/scala/Translator.scala
@@ -2258,7 +2258,7 @@ class ExpressionTranslator(val globals: Globals, preGlobals: Globals, val fpi: F
(if (transferPermissionToSecMask) InhalePermission(perm, trE, memberName, currentK, sm)
else Nil) :::
// give up secondary permission to locations of the body of the predicate (also recursively)
- (if (e.isPredicate)
+ (if (e.isPredicate && !transferPermissionToSecMask)
(if (isUpdatingSecMask)
UpdateSecMask(e.predicate, trE, Heap.select(trE, memberName), perm, currentK, recurseOnPredicatesDepth, previousReceivers)
else