Lines Matching refs:pSet
41 static void dvmBreakpointSetFree(BreakpointSet* pSet);
107 BreakpointSet* pSet = (BreakpointSet*) calloc(1, sizeof(*pSet)); in dvmBreakpointSetAlloc() local
109 dvmInitMutex(&pSet->lock); in dvmBreakpointSetAlloc()
112 return pSet; in dvmBreakpointSetAlloc()
118 static void dvmBreakpointSetFree(BreakpointSet* pSet) in dvmBreakpointSetFree() argument
120 if (pSet == NULL) in dvmBreakpointSetFree()
123 free(pSet->breakpoints); in dvmBreakpointSetFree()
124 free(pSet); in dvmBreakpointSetFree()
135 static void dvmBreakpointSetLock(BreakpointSet* pSet) in dvmBreakpointSetLock() argument
137 if (dvmTryLockMutex(&pSet->lock) != 0) { in dvmBreakpointSetLock()
140 dvmLockMutex(&pSet->lock); in dvmBreakpointSetLock()
148 static void dvmBreakpointSetUnlock(BreakpointSet* pSet) in dvmBreakpointSetUnlock() argument
150 dvmUnlockMutex(&pSet->lock); in dvmBreakpointSetUnlock()
156 static int dvmBreakpointSetCount(const BreakpointSet* pSet) in dvmBreakpointSetCount() argument
158 return pSet->count; in dvmBreakpointSetCount()
168 static int dvmBreakpointSetFind(const BreakpointSet* pSet, const u2* addr) in dvmBreakpointSetFind() argument
172 for (i = 0; i < pSet->count; i++) { in dvmBreakpointSetFind()
173 Breakpoint* pBreak = &pSet->breakpoints[i]; in dvmBreakpointSetFind()
188 static bool dvmBreakpointSetOriginalOpcode(const BreakpointSet* pSet, in dvmBreakpointSetOriginalOpcode() argument
191 int idx = dvmBreakpointSetFind(pSet, addr); in dvmBreakpointSetOriginalOpcode()
195 *pOrig = pSet->breakpoints[idx].originalOpcode; in dvmBreakpointSetOriginalOpcode()
233 static bool dvmBreakpointSetAdd(BreakpointSet* pSet, Method* method, in dvmBreakpointSetAdd() argument
238 int idx = dvmBreakpointSetFind(pSet, addr); in dvmBreakpointSetAdd()
242 if (pSet->count == pSet->alloc) { in dvmBreakpointSetAdd()
243 int newSize = pSet->alloc + kBreakpointGrowth; in dvmBreakpointSetAdd()
249 newVec = (Breakpoint*)realloc(pSet->breakpoints, newSize * sizeof(Breakpoint)); in dvmBreakpointSetAdd()
253 pSet->breakpoints = newVec; in dvmBreakpointSetAdd()
254 pSet->alloc = newSize; in dvmBreakpointSetAdd()
257 pBreak = &pSet->breakpoints[pSet->count++]; in dvmBreakpointSetAdd()
297 pBreak = &pSet->breakpoints[idx]; in dvmBreakpointSetAdd()
311 static void dvmBreakpointSetRemove(BreakpointSet* pSet, Method* method, in dvmBreakpointSetRemove() argument
315 int idx = dvmBreakpointSetFind(pSet, addr); in dvmBreakpointSetRemove()
328 Breakpoint* pBreak = &pSet->breakpoints[idx]; in dvmBreakpointSetRemove()
342 if (idx != pSet->count-1) { in dvmBreakpointSetRemove()
344 memmove(&pSet->breakpoints[idx], &pSet->breakpoints[idx+1], in dvmBreakpointSetRemove()
345 (pSet->count-1 - idx) * sizeof(pSet->breakpoints[0])); in dvmBreakpointSetRemove()
347 pSet->count--; in dvmBreakpointSetRemove()
348 pSet->breakpoints[pSet->count].addr = (u2*) 0xdecadead; // debug in dvmBreakpointSetRemove()
364 static void dvmBreakpointSetFlush(BreakpointSet* pSet, ClassObject* clazz) in dvmBreakpointSetFlush() argument
367 for (i = 0; i < pSet->count; i++) { in dvmBreakpointSetFlush()
368 Breakpoint* pBreak = &pSet->breakpoints[i]; in dvmBreakpointSetFlush()
396 BreakpointSet* pSet = gDvm.breakpointSet; in dvmInitBreakpoints() local
397 dvmBreakpointSetLock(pSet); in dvmInitBreakpoints()
398 if (dvmBreakpointSetCount(pSet) != 0) { in dvmInitBreakpoints()
399 ALOGW("WARNING: %d leftover breakpoints", dvmBreakpointSetCount(pSet)); in dvmInitBreakpoints()
402 dvmBreakpointSetUnlock(pSet); in dvmInitBreakpoints()
421 BreakpointSet* pSet = gDvm.breakpointSet; in dvmAddBreakAddr() local
422 dvmBreakpointSetLock(pSet); in dvmAddBreakAddr()
423 dvmBreakpointSetAdd(pSet, method, instrOffset); in dvmAddBreakAddr()
424 dvmBreakpointSetUnlock(pSet); in dvmAddBreakAddr()
439 BreakpointSet* pSet = gDvm.breakpointSet; in dvmClearBreakAddr() local
440 dvmBreakpointSetLock(pSet); in dvmClearBreakAddr()
441 dvmBreakpointSetRemove(pSet, method, instrOffset); in dvmClearBreakAddr()
442 dvmBreakpointSetUnlock(pSet); in dvmClearBreakAddr()
458 BreakpointSet* pSet = gDvm.breakpointSet; in dvmGetOriginalOpcode() local
461 dvmBreakpointSetLock(pSet); in dvmGetOriginalOpcode()
462 if (!dvmBreakpointSetOriginalOpcode(pSet, addr, &orig)) { in dvmGetOriginalOpcode()
469 dvmBreakpointSetUnlock(pSet); in dvmGetOriginalOpcode()
483 BreakpointSet* pSet = gDvm.breakpointSet; in dvmFlushBreakpoints() local
485 if (pSet == NULL) in dvmFlushBreakpoints()
489 dvmBreakpointSetLock(pSet); in dvmFlushBreakpoints()
490 dvmBreakpointSetFlush(pSet, clazz); in dvmFlushBreakpoints()
491 dvmBreakpointSetUnlock(pSet); in dvmFlushBreakpoints()