00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef SkPtrRecorder_DEFINED
00018 #define SkPtrRecorder_DEFINED
00019
00020 #include "SkRefCnt.h"
00021 #include "SkTDArray.h"
00022
00023 class SkPtrRecorder : public SkRefCnt {
00024 public:
00025 uint32_t recordPtr(void*);
00026
00027 int count() const { return fList.count(); }
00028 void getPtrs(void* array[]) const;
00029
00030 void reset();
00031
00032 protected:
00033 virtual void incPtr(void* ptr) {}
00034 virtual void decPtr(void* ptr) {}
00035
00036 private:
00037 struct Pair {
00038 void* fPtr;
00039 uint32_t fIndex;
00040 };
00041 SkTDArray<Pair> fList;
00042
00043 static int Cmp(const Pair& a, const Pair& b);
00044
00045 typedef SkRefCnt INHERITED;
00046 };
00047
00048 #endif