| Index: src/core/SkTileGrid.h
|
| diff --git a/src/core/SkTileGrid.h b/src/core/SkTileGrid.h
|
| index e272673c638f255d320e676c0e4fdfd60bb2f511..77d972850fe7bb70fb14ca657bb92c3842e72968 100644
|
| --- a/src/core/SkTileGrid.h
|
| +++ b/src/core/SkTileGrid.h
|
| @@ -25,7 +25,15 @@
|
| */
|
| class SkTileGrid : public SkBBoxHierarchy {
|
| public:
|
| - typedef void* (*SkTileGridNextDatumFunctionPtr)(SkTDArray<void*>** tileData, SkTDArray<int>& tileIndices);
|
| + enum {
|
| + // Number of tiles for which data is allocated on the stack in
|
| + // SkTileGrid::search. If malloc becomes a bottleneck, we may consider
|
| + // increasing this number. Typical large web page, say 2k x 16k, would
|
| + // require 512 tiles of size 256 x 256 pixels.
|
| + kStackAllocationTileCount = 1024
|
| + };
|
| +
|
| + typedef void* (*SkTileGridNextDatumFunctionPtr)(SkTDArray<void*>** tileData, SkAutoSTArray<kStackAllocationTileCount, int>& tileIndices);
|
|
|
| SkTileGrid(int xTileCount, int yTileCount, const SkTileGridPicture::TileGridInfo& info,
|
| SkTileGridNextDatumFunctionPtr nextDatumFunction);
|
| @@ -91,7 +99,7 @@ private:
|
| * such that 'a < b' is true if 'a' was inserted into the tile grid before 'b'.
|
| */
|
| template <typename T>
|
| -void* SkTileGridNextDatum(SkTDArray<void*>** tileData, SkTDArray<int>& tileIndices) {
|
| +void* SkTileGridNextDatum(SkTDArray<void*>** tileData, SkAutoSTArray<SkTileGrid::kStackAllocationTileCount, int>& tileIndices) {
|
| T* minVal = NULL;
|
| int tileCount = tileIndices.count();
|
| int minIndex = tileCount;
|
|
|