mirror of
https://github.com/asmjit/asmjit.git
synced 2025-12-18 21:14:35 +03:00
[Bug] Don't crash when formatting label without having an emitter
This commit is contained in:
@@ -123,32 +123,33 @@ Error formatLabel(
|
|||||||
|
|
||||||
DebugUtils::unused(formatFlags);
|
DebugUtils::unused(formatFlags);
|
||||||
|
|
||||||
const LabelEntry* le = emitter->code()->labelEntry(labelId);
|
if (emitter && emitter->code()) {
|
||||||
if (ASMJIT_UNLIKELY(!le))
|
const LabelEntry* le = emitter->code()->labelEntry(labelId);
|
||||||
return sb.appendFormat("<InvalidLabel:%u>", labelId);
|
if (ASMJIT_UNLIKELY(!le))
|
||||||
|
return sb.appendFormat("<InvalidLabel:%u>", labelId);
|
||||||
|
|
||||||
if (le->hasName()) {
|
if (le->hasName()) {
|
||||||
if (le->hasParent()) {
|
if (le->hasParent()) {
|
||||||
uint32_t parentId = le->parentId();
|
uint32_t parentId = le->parentId();
|
||||||
const LabelEntry* pe = emitter->code()->labelEntry(parentId);
|
const LabelEntry* pe = emitter->code()->labelEntry(parentId);
|
||||||
|
|
||||||
if (ASMJIT_UNLIKELY(!pe))
|
if (ASMJIT_UNLIKELY(!pe))
|
||||||
ASMJIT_PROPAGATE(sb.appendFormat("<InvalidLabel:%u>", labelId));
|
ASMJIT_PROPAGATE(sb.appendFormat("<InvalidLabel:%u>", labelId));
|
||||||
else if (ASMJIT_UNLIKELY(!pe->hasName()))
|
else if (ASMJIT_UNLIKELY(!pe->hasName()))
|
||||||
ASMJIT_PROPAGATE(sb.appendFormat("L%u", parentId));
|
ASMJIT_PROPAGATE(sb.appendFormat("L%u", parentId));
|
||||||
else
|
else
|
||||||
ASMJIT_PROPAGATE(sb.append(pe->name()));
|
ASMJIT_PROPAGATE(sb.append(pe->name()));
|
||||||
|
|
||||||
ASMJIT_PROPAGATE(sb.append('.'));
|
ASMJIT_PROPAGATE(sb.append('.'));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (le->type() == LabelType::kAnonymous)
|
||||||
|
ASMJIT_PROPAGATE(sb.appendFormat("L%u@", labelId));
|
||||||
|
return sb.append(le->name());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (le->type() == LabelType::kAnonymous)
|
return sb.appendFormat("L%u", labelId);
|
||||||
ASMJIT_PROPAGATE(sb.appendFormat("L%u@", labelId));
|
|
||||||
return sb.append(le->name());
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return sb.appendFormat("L%u", labelId);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Error formatRegister(
|
Error formatRegister(
|
||||||
|
|||||||
Reference in New Issue
Block a user