summaryrefslogtreecommitdiffstats
path: root/libs/hwui/DisplayListRenderer.cpp
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2011-07-27 18:53:32 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-07-27 18:53:32 -0700
commitb6f7a27c59fd170b5d7617e43e21bfd8587f234e (patch)
tree72e244eb413f78db3d124fa898e7503014845f84 /libs/hwui/DisplayListRenderer.cpp
parent395c86f7f659e3ffc834689576cc738b517d3b9e (diff)
parent65b345fa22b878e141b8fd8ece9c208df00fa40f (diff)
downloadframeworks_base-b6f7a27c59fd170b5d7617e43e21bfd8587f234e.zip
frameworks_base-b6f7a27c59fd170b5d7617e43e21bfd8587f234e.tar.gz
frameworks_base-b6f7a27c59fd170b5d7617e43e21bfd8587f234e.tar.bz2
Merge "Reclaim more memory, more often."
Diffstat (limited to 'libs/hwui/DisplayListRenderer.cpp')
-rw-r--r--libs/hwui/DisplayListRenderer.cpp22
1 files changed, 16 insertions, 6 deletions
diff --git a/libs/hwui/DisplayListRenderer.cpp b/libs/hwui/DisplayListRenderer.cpp
index 886c05c..88cfc5a 100644
--- a/libs/hwui/DisplayListRenderer.cpp
+++ b/libs/hwui/DisplayListRenderer.cpp
@@ -74,12 +74,17 @@ void DisplayList::outputLogBuffer(int fd) {
if (logBuffer.isEmpty()) {
return;
}
- String8 cachesLog;
- Caches::getInstance().dumpMemoryUsage(cachesLog);
+
FILE *file = fdopen(fd, "a");
- fprintf(file, "\nCaches:\n%s", cachesLog.string());
+
fprintf(file, "\nRecent DisplayList operations\n");
logBuffer.outputCommands(file, OP_NAMES);
+
+ String8 cachesLog;
+ Caches::getInstance().dumpMemoryUsage(cachesLog);
+ fprintf(file, "\nCaches:\n%s", cachesLog.string());
+ fprintf(file, "\n");
+
fflush(file);
}
@@ -143,10 +148,10 @@ void DisplayList::initFromDisplayListRenderer(const DisplayListRenderer& recorde
clearResources();
}
- size_t size = writer.size();
- void* buffer = sk_malloc_throw(size);
+ mSize = writer.size();
+ void* buffer = sk_malloc_throw(mSize);
writer.flatten(buffer);
- mReader.setMemory(buffer, size);
+ mReader.setMemory(buffer, mSize);
Caches& caches = Caches::getInstance();
@@ -188,6 +193,11 @@ void DisplayList::initFromDisplayListRenderer(const DisplayListRenderer& recorde
}
void DisplayList::init() {
+ mSize = 0;
+}
+
+size_t DisplayList::getSize() {
+ return mSize;
}
/**