Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(963)

Unified Diff: Source/core/rendering/FastTextAutosizer.cpp

Issue 186443002: [Do Not Submit] Fingerprint and Supercluster debugging logic Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/rendering/FastTextAutosizer.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/rendering/FastTextAutosizer.cpp
diff --git a/Source/core/rendering/FastTextAutosizer.cpp b/Source/core/rendering/FastTextAutosizer.cpp
index 7d9c5172dc9c58b62cd208684b087fa016f9e9ae..d008a2aee61947041e671fc11d6efbb47d2c1932 100644
--- a/Source/core/rendering/FastTextAutosizer.cpp
+++ b/Source/core/rendering/FastTextAutosizer.cpp
@@ -74,6 +74,51 @@ FastTextAutosizer::FastTextAutosizer(const Document* document)
{
}
+static void printFingerprintAndSuperclusterStats(FastTextAutosizer::SuperclusterMap& superclusters, FastTextAutosizer::FingerprintMapper& fingerprintMapper)
+{
+ fprintf(stderr, "fingerprint and supercluster stats\n");
+ fprintf(stderr, "==================================\n");
+ fprintf(stderr, "Superclusters:\n");
+ int superclusterNumber = 0;
+ for (FastTextAutosizer::SuperclusterMap::iterator superIter = superclusters.begin(); superIter != superclusters.end(); ++superIter) {
+ superclusterNumber++;
+ fprintf(stderr, " #%d) supercluster fingerprint %u and blocks: ", superclusterNumber, superIter->key);
+ const FastTextAutosizer::BlockSet* roots = superIter->value->m_roots;
+ bool isFirst = true;
+ for (FastTextAutosizer::BlockSet::iterator blockIter = roots->begin(); blockIter != roots->end(); ++blockIter) {
+ const RenderBlock* block = (*blockIter);
+ if (!isFirst)
+ fprintf(stderr, ", ");
+ fprintf(stderr, "%p/%s", block, block->node() ? block->node()->nodeName().utf8().data() : "unknown");
+ isFirst = false;
+ }
+ fprintf(stderr, "\n");
+ }
+ fprintf(stderr, "Fingerprints for blocks:\n");
+ int blockNumber = 0;
+ for (FastTextAutosizer::FingerprintMapper::FingerprintMap::iterator fingerIter = fingerprintMapper.m_fingerprints.begin(); fingerIter != fingerprintMapper.m_fingerprints.end(); ++fingerIter) {
+ blockNumber++;
+ const RenderObject* block = fingerIter->key;
+ fprintf(stderr, " #%d) block %p/%s has fingerprint %u\n", blockNumber, block, block->node() ? block->node()->nodeName().utf8().data() : "unknown", fingerIter->value);
+ }
+ fprintf(stderr, "Blocks for fingerprints:\n");
+ int fingerprintNumber = 0;
+ for (FastTextAutosizer::FingerprintMapper::ReverseFingerprintMap::iterator blocksIter = fingerprintMapper.m_blocksForFingerprint.begin(); blocksIter != fingerprintMapper.m_blocksForFingerprint.end(); ++blocksIter) {
+ fingerprintNumber++;
+ fprintf(stderr, " #%d) fingerprint %u and blocks: ", fingerprintNumber, blocksIter->key);
+ FastTextAutosizer::BlockSet* blocks = blocksIter->value.get();
+ bool isFirst = true;
+ for (FastTextAutosizer::BlockSet::iterator blockIter = blocks->begin(); blockIter != blocks->end(); ++blockIter) {
+ const RenderBlock* block = (*blockIter);
+ if (!isFirst)
+ fprintf(stderr, ", ");
+ fprintf(stderr, "%p/%s", block, block->node() ? block->node()->nodeName().utf8().data() : "unknown");
+ isFirst = false;
+ }
+ fprintf(stderr, "\n");
+ }
+}
+
void FastTextAutosizer::record(const RenderBlock* block)
{
if (!enabled())
@@ -86,6 +131,8 @@ void FastTextAutosizer::record(const RenderBlock* block)
if (Fingerprint fingerprint = computeFingerprint(block))
m_fingerprintMapper.addTentativeClusterRoot(block, fingerprint);
+ fprintf(stderr, "after record(%p)\n", block);
+ printFingerprintAndSuperclusterStats(m_superclusters, m_fingerprintMapper);
}
void FastTextAutosizer::destroy(const RenderBlock* block)
@@ -95,6 +142,8 @@ void FastTextAutosizer::destroy(const RenderBlock* block)
ASSERT(!m_blocksThatHaveBegunLayout.contains(block));
m_fingerprintMapper.remove(block);
+ fprintf(stderr, "after destroy(%p)\n", block);
+ printFingerprintAndSuperclusterStats(m_superclusters, m_fingerprintMapper);
}
void FastTextAutosizer::prepareClusterStack(const RenderObject* renderer)
@@ -115,6 +164,9 @@ void FastTextAutosizer::prepareClusterStack(const RenderObject* renderer)
void FastTextAutosizer::beginLayout(RenderBlock* block)
{
+ fprintf(stderr, "beginLayout(%p)\n", block);
+ printFingerprintAndSuperclusterStats(m_superclusters, m_fingerprintMapper);
+
ASSERT(enabled());
#ifndef NDEBUG
m_blocksThatHaveBegunLayout.add(block);
@@ -467,6 +519,8 @@ float FastTextAutosizer::clusterMultiplier(Cluster* cluster)
float FastTextAutosizer::superclusterMultiplier(Supercluster* supercluster)
{
if (!supercluster->m_multiplier) {
+ fprintf(stderr, "superclusterMultiplier\n");
+ printFingerprintAndSuperclusterStats(m_superclusters, m_fingerprintMapper);
const BlockSet* roots = supercluster->m_roots;
BlockSet widthProviders;
for (BlockSet::iterator it = roots->begin(); it != roots->end(); ++it)
@@ -489,6 +543,7 @@ float FastTextAutosizer::superclusterMultiplier(Supercluster* supercluster)
const RenderBlock* FastTextAutosizer::clusterWidthProvider(const RenderBlock* root)
{
+ fprintf(stderr, "clusterWidthProvider(%p)\n", root);
if (root->isTableCell())
return toRenderTableCell(root)->table();
if (root->isTable())
« no previous file with comments | « Source/core/rendering/FastTextAutosizer.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698