Appease the static analyzer
Since the static analyzer assumes that
`head == blockToRemove && blockToRemove->prevBlock == nullptr` may be
true, it complains that we're deleting `head` and returning `head`
shortly afterward.
Assert (without assertions, since -DNDEBUG is passed) that this isn't
the case.
Bug: 27101951
Test: mma. Warning is gone.
Change-Id: I33e98eec7b293fcf0d8826f89c287a3b870758f2
diff --git a/libs/hwui/font/CacheTexture.cpp b/libs/hwui/font/CacheTexture.cpp
index e2844ad06..73beba9 100644
--- a/libs/hwui/font/CacheTexture.cpp
+++ b/libs/hwui/font/CacheTexture.cpp
@@ -91,6 +91,9 @@
CacheBlock* prevBlock = blockToRemove->mPrev;
if (prevBlock) {
+ // If this doesn't hold, we have a use-after-free below.
+ LOG_ALWAYS_FATAL_IF(head == blockToRemove,
+ "removeBlock: head should not have a previous block");
prevBlock->mNext = nextBlock;
} else {
newHead = nextBlock;