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

Side by Side Diff: src/core/SkVarAlloc.h

Issue 795223002: Fix some win64 warnings. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years 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 unified diff | Download patch
OLDNEW
1 #ifndef SkVarAlloc_DEFINED 1 #ifndef SkVarAlloc_DEFINED
2 #define SkVarAlloc_DEFINED 2 #define SkVarAlloc_DEFINED
3 3
4 #include "SkTypes.h" 4 #include "SkTypes.h"
5 5
6 class SkVarAlloc : SkNoncopyable { 6 class SkVarAlloc : SkNoncopyable {
7 public: 7 public:
8 SkVarAlloc(); 8 SkVarAlloc();
9 ~SkVarAlloc(); 9 ~SkVarAlloc();
10 10
11 // Returns contiguous bytes aligned at least for pointers. You may pass SK_ MALLOC_THROW, etc. 11 // Returns contiguous bytes aligned at least for pointers. You may pass SK_ MALLOC_THROW, etc.
12 char* alloc(size_t bytes, unsigned sk_malloc_flags) { 12 char* alloc(size_t bytes, unsigned sk_malloc_flags) {
13 bytes = SkAlignPtr(bytes); 13 bytes = SkAlignPtr(bytes);
14 14
15 if (bytes > fRemaining) { 15 if (bytes > fRemaining) {
16 this->makeSpace(bytes, sk_malloc_flags); 16 this->makeSpace(bytes, sk_malloc_flags);
17 } 17 }
18 SkASSERT(bytes <= fRemaining); 18 SkASSERT(bytes <= fRemaining);
19 19
20 char* ptr = fByte; 20 char* ptr = fByte;
21 fByte += bytes; 21 fByte += bytes;
22 fRemaining -= bytes; 22 fRemaining = SkToU32(fRemaining - bytes);
23 return ptr; 23 return ptr;
24 } 24 }
25 25
26 // Returns our best estimate of the number of bytes we've allocated. 26 // Returns our best estimate of the number of bytes we've allocated.
27 // (We intentionally do not track this precisely to save space.) 27 // (We intentionally do not track this precisely to save space.)
28 size_t approxBytesAllocated() const; 28 size_t approxBytesAllocated() const;
29 29
30 private: 30 private:
31 void makeSpace(size_t bytes, unsigned flags); 31 void makeSpace(size_t bytes, unsigned flags);
32 32
33 char* fByte; 33 char* fByte;
34 unsigned fRemaining; 34 unsigned fRemaining;
35 unsigned fLgSize; // This is always in the range [4, 16], so it really only needs 4 bits. 35 unsigned fLgSize; // This is always in the range [4, 16], so it really only needs 4 bits.
36 36
37 struct Block; 37 struct Block;
38 Block* fBlock; 38 Block* fBlock;
39 }; 39 };
40 SK_COMPILE_ASSERT(sizeof(SkVarAlloc) <= 24, SkVarAllocSize); 40 SK_COMPILE_ASSERT(sizeof(SkVarAlloc) <= 24, SkVarAllocSize);
41 41
42 #endif//SkVarAlloc_DEFINED 42 #endif//SkVarAlloc_DEFINED
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698