diff options
-rw-r--r-- | vm/compiler/codegen/arm/Assemble.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/vm/compiler/codegen/arm/Assemble.c b/vm/compiler/codegen/arm/Assemble.c index f5fecbc47..34793ee9f 100644 --- a/vm/compiler/codegen/arm/Assemble.c +++ b/vm/compiler/codegen/arm/Assemble.c @@ -1991,7 +1991,8 @@ JitTraceDescription *dvmCopyTraceDescriptor(const u2 *pc, { const JitEntry *jitEntry = knownEntry ? knownEntry : dvmJitFindEntry(pc, false); - if (jitEntry == NULL) return NULL; + if ((jitEntry == NULL) || (jitEntry->codeAddress == 0)) + return NULL; /* Find out the startint point */ char *traceBase = getTraceBase(jitEntry); @@ -2078,8 +2079,10 @@ void dvmCompilerSortAndPrintTraceProfiles() } JitTraceDescription* desc = dvmCopyTraceDescriptor(NULL, &sortedEntries[i]); - dvmCompilerWorkEnqueue(sortedEntries[i].dPC, - kWorkOrderTraceDebug, desc); + if (desc) { + dvmCompilerWorkEnqueue(sortedEntries[i].dPC, + kWorkOrderTraceDebug, desc); + } } free(sortedEntries); |