| 577 | } |
| 578 | |
| 579 | int64 CeDebugger::ValueToInt(addr_ce addr, BfType* type) |
| 580 | { |
| 581 | if ((!type->IsInteger()) && (!type->IsBoolean())) |
| 582 | return 0; |
| 583 | |
| 584 | auto primType = (BfPrimitiveType*)type; |
| 585 | auto ceContext = mCeMachine->mCurContext; |
| 586 | |
| 587 | int64 val = 0; |
| 588 | memcpy(&val, ceContext->mMemory.mVals + addr, type->mSize); |
| 589 | |
| 590 | switch (primType->mTypeDef->mTypeCode) |
| 591 | { |
| 592 | case BfTypeCode_Int8: |
| 593 | val = *(int8*)&val; |
| 594 | break; |
| 595 | case BfTypeCode_Int16: |
| 596 | val = *(int16*)&val; |
| 597 | break; |
| 598 | case BfTypeCode_Int32: |
| 599 | val = *(int32*)&val; |
| 600 | break; |
| 601 | } |
| 602 | return val; |
| 603 | } |
| 604 | |
| 605 | int64 CeDebugger::ValueToInt(const BfTypedValue& typedVal) |
| 606 | { |
no test coverage detected