void SkAnimateMaker::deleteMembers() { int index; #if defined SK_DEBUG && 0 //this code checks to see if helpers are among the children, but it is not complete - //it should check the children of the children int result; SkTDArray<SkDisplayable*> children(fChildren.begin(), fChildren.count()); SkQSort(children.begin(), children.count(), sizeof(SkDisplayable*),compare_disp); for (index = 0; index < fHelpers.count(); index++) { SkDisplayable* helper = fHelpers[index]; result = SkTSearch(children.begin(), children.count(), helper, sizeof(SkDisplayable*)); SkASSERT(result < 0); } #endif for (index = 0; index < fChildren.count(); index++) { SkDisplayable* child = fChildren[index]; delete child; } for (index = 0; index < fHelpers.count(); index++) { SkDisplayable* helper = fHelpers[index]; delete helper; } for (index = 0; index < fExtras.count(); index++) { SkExtras* extras = fExtras[index]; delete extras; } }
int GrGLGpu::ProgramCache::search(const GrProgramDesc& desc) const { ProgDescLess less; return SkTSearch(fEntries, fCount, desc, sizeof(Entry*), less); }
SkGLTextCache::Strike::~Strike() { if (fTexName != 0) { glDeleteTextures(1, &fTexName); } } SkGLTextCache::Strike* SkGLTextCache::Strike::findGlyph(const SkGlyph& glyph, int* offset) { Strike* strike = this; SkDEBUGCODE(const int height = SkNextPow2(glyph.fHeight);) do { SkASSERT(height == strike->fStrikeHeight); int index = SkTSearch(strike->fGlyphIDArray, strike->fGlyphCount, glyph.fID, sizeof(strike->fGlyphIDArray[0])); if (index >= 0) { if (offset) { *offset = strike->fGlyphOffsetX[index]; } return strike; } strike = strike->fNext; } while (NULL != strike); return NULL; } static void make_a_whole(void* buffer, int index, int count, size_t elemSize) { SkASSERT(index >= 0 && index <= count); size_t offset = index * elemSize; memmove((char*)buffer + offset + elemSize,