Fix deep copy of entry queue
also fixes several 64 bit compilation issues
Change-Id: I1825f822d02be72c21bdcd07cefa68217856ddc2
diff --git a/libs/hwui/FrameReorderer.cpp b/libs/hwui/FrameReorderer.cpp
index 4bfc0b4..f492c7d 100644
--- a/libs/hwui/FrameReorderer.cpp
+++ b/libs/hwui/FrameReorderer.cpp
@@ -452,7 +452,7 @@
&& PaintUtils::getXfermodeDirect(op.paint) == SkXfermode::kSrcOver_Mode
&& op.bitmap->colorType() != kAlpha_8_SkColorType
&& hasMergeableClip(*bakedState)) {
- mergeid_t mergeId = (mergeid_t) op.bitmap->getGenerationID();
+ mergeid_t mergeId = reinterpret_cast<mergeid_t>(op.bitmap->getGenerationID());
// TODO: AssetAtlas in mergeId
currentLayer().deferMergeableOp(mAllocator, bakedState, OpBatchType::Bitmap, mergeId);
} else {
@@ -509,7 +509,7 @@
if (bakedState->computedState.transform.isPureTranslate()
&& PaintUtils::getXfermodeDirect(op.paint) == SkXfermode::kSrcOver_Mode
&& hasMergeableClip(*bakedState)) {
- mergeid_t mergeId = (mergeid_t) op.bitmap->getGenerationID();
+ mergeid_t mergeId = reinterpret_cast<mergeid_t>(op.bitmap->getGenerationID());
// TODO: AssetAtlas in mergeId
// Only use the MergedPatch batchId when merged, so Bitmap+Patch don't try to merge together
diff --git a/libs/hwui/LayerReorderer.cpp b/libs/hwui/LayerReorderer.cpp
index 9a17e93..946897b 100644
--- a/libs/hwui/LayerReorderer.cpp
+++ b/libs/hwui/LayerReorderer.cpp
@@ -53,7 +53,7 @@
void dump() const {
ALOGD(" Batch %p, id %d, merging %d, count %d, bounds " RECT_STRING,
- this, mBatchId, mMerging, mOps.size(), RECT_ARGS(mBounds));
+ this, mBatchId, mMerging, (int) mOps.size(), RECT_ARGS(mBounds));
}
protected:
batchid_t mBatchId;
diff --git a/libs/hwui/LayerUpdateQueue.h b/libs/hwui/LayerUpdateQueue.h
index be612d2..5b1a854 100644
--- a/libs/hwui/LayerUpdateQueue.h
+++ b/libs/hwui/LayerUpdateQueue.h
@@ -42,7 +42,7 @@
LayerUpdateQueue() {}
void enqueueLayerWithDamage(RenderNode* renderNode, Rect dirty);
void clear();
- const std::vector<Entry> entries() const { return mEntries; }
+ const std::vector<Entry>& entries() const { return mEntries; }
private:
std::vector<Entry> mEntries;
};