diff options
Diffstat (limited to 'function.cpp')
| -rw-r--r-- | function.cpp | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/function.cpp b/function.cpp index 6a4564cd..68704e4d 100644 --- a/function.cpp +++ b/function.cpp @@ -418,121 +418,6 @@ RegisterValue RegisterValue::FromAPIObject(const BNRegisterValue& value) } -PossibleValueSet PossibleValueSet::FromAPIObject(BNPossibleValueSet& value) -{ - PossibleValueSet result; - result.state = value.state; - result.value = value.value; - result.offset = value.offset; - result.size = value.size; - if (value.state == LookupTableValue) - { - for (size_t i = 0; i < value.count; i++) - { - LookupTableEntry entry; - entry.fromValues.insert(entry.fromValues.end(), &value.table[i].fromValues[0], - &value.table[i].fromValues[value.table[i].fromCount]); - entry.toValue = value.table[i].toValue; - result.table.push_back(entry); - } - } - else if ((value.state == SignedRangeValue) || (value.state == UnsignedRangeValue)) - { - for (size_t i = 0; i < value.count; i++) - result.ranges.push_back(value.ranges[i]); - } - else if ((value.state == InSetOfValues) || (value.state == NotInSetOfValues)) - { - for (size_t i = 0; i < value.count; i++) - result.valueSet.insert(value.valueSet[i]); - } - - result.count = value.count; - BNFreePossibleValueSet(&value); - return result; -} - - -BNPossibleValueSet PossibleValueSet::ToAPIObject() const -{ - BNPossibleValueSet result; - result.state = state; - result.value = value; - result.offset = offset; - result.size = size; - result.count = 0; - - if ((state == SignedRangeValue) || (state == UnsignedRangeValue)) - { - result.ranges = new BNValueRange[ranges.size()]; - result.count = ranges.size(); - for (size_t i = 0; i < ranges.size(); i++) - result.ranges[i] = ranges[i]; - } - else - { - result.ranges = nullptr; - } - - if (state == LookupTableValue) - { - result.table = new BNLookupTableEntry[table.size()]; - result.count = table.size(); - for (size_t i = 0; i < table.size(); i++) - { - result.table[i].fromValues = new int64_t[table[i].fromValues.size()]; - memcpy(result.table[i].fromValues, &table[i].fromValues[0], sizeof(int64_t) * table[i].fromValues.size()); - result.table[i].fromCount = table[i].fromValues.size(); - result.table[i].toValue = table[i].toValue; - } - } - else - { - result.table = nullptr; - } - - if ((state == InSetOfValues) || (state == NotInSetOfValues)) - { - result.valueSet = new int64_t[valueSet.size()]; - result.count = valueSet.size(); - size_t i = 0; - for (auto j : valueSet) - result.valueSet[i++] = j; - } - else - { - result.valueSet = nullptr; - } - - return result; -} - - -void PossibleValueSet::FreeAPIObject(BNPossibleValueSet* value) -{ - switch (value->state) - { - case SignedRangeValue: - case UnsignedRangeValue: - delete[] value->ranges; - break; - case LookupTableValue: - for (size_t i = 0; i < value->count; i ++) - { - delete[] value->table[i].fromValues; - } - delete[] value->table; - break; - case InSetOfValues: - case NotInSetOfValues: - delete[] value->valueSet; - break; - default: - break; - } -} - - pair<DataBuffer, BNBuiltinType> Function::GetConstantData(BNRegisterValueType state, uint64_t value, size_t size) { BNBuiltinType builtin; |
