mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-07-01 02:41:48 +00:00
[wpiutil] DynamicStruct: Fix decoding of signed integers (#7350)
Add tests for both C++ and Java.
This commit is contained in:
@@ -423,7 +423,17 @@ class DynamicStruct {
|
||||
int64_t GetIntField(const StructFieldDescriptor* field,
|
||||
size_t arrIndex = 0) const {
|
||||
assert(field->IsInt());
|
||||
return GetFieldImpl(field, arrIndex);
|
||||
uint64_t raw = GetFieldImpl(field, arrIndex);
|
||||
switch (field->m_size) {
|
||||
case 1:
|
||||
return static_cast<int8_t>(raw);
|
||||
case 2:
|
||||
return static_cast<int16_t>(raw);
|
||||
case 4:
|
||||
return static_cast<int32_t>(raw);
|
||||
default:
|
||||
return raw;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user