LCOV - code coverage report
Current view: top level - gfx/skia/skia/src/core - SkVarAlloc.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 10 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 2 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Copyright 2015 Google Inc.
       3             :  *
       4             :  * Use of this source code is governed by a BSD-style license that can be
       5             :  * found in the LICENSE file.
       6             :  */
       7             : 
       8             : #ifndef SkVarAlloc_DEFINED
       9             : #define SkVarAlloc_DEFINED
      10             : 
      11             : #include "SkTypes.h"
      12             : 
      13             : class SkVarAlloc : SkNoncopyable {
      14             : public:
      15             :     // Smallest block we'll allocate is 2**N bytes.
      16             :     explicit SkVarAlloc(size_t minLgSize);
      17             :     // Same as above, but first uses up to len bytes from storage.
      18             :     SkVarAlloc(size_t minLgSize, char* storage, size_t len);
      19             : 
      20             :     ~SkVarAlloc();
      21             : 
      22             :     // Returns contiguous bytes aligned at least for pointers.
      23           0 :     char* alloc(size_t bytes) {
      24           0 :         bytes = SkAlignPtr(bytes);
      25             : 
      26           0 :         if (bytes > fRemaining) {
      27           0 :             this->makeSpace(bytes);
      28             :         }
      29           0 :         SkASSERT(bytes <= fRemaining);
      30             : 
      31           0 :         char* ptr = fByte;
      32           0 :         fByte += bytes;
      33           0 :         fRemaining = SkToU32(fRemaining - bytes);
      34           0 :         return ptr;
      35             :     }
      36             : 
      37             :     // Returns our best estimate of the number of bytes we've allocated.
      38             :     // (We may not track this precisely to save space.)
      39           0 :     size_t approxBytesAllocated() const { return fBytesAllocated; }
      40             : 
      41             : private:
      42             :     void makeSpace(size_t bytes);
      43             : 
      44             :     size_t fBytesAllocated;
      45             : 
      46             :     char* fByte;
      47             :     unsigned fRemaining;
      48             :     unsigned fLgSize;
      49             : 
      50             :     struct Block;
      51             :     Block* fBlock;
      52             : };
      53             : static_assert(sizeof(SkVarAlloc) <= 32, "SkVarAllocSize");
      54             : 
      55             : #endif//SkVarAlloc_DEFINED

Generated by: LCOV version 1.13