mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-02-22 23:55:12 +00:00
AK: Allow JsonValue to store 64-bit integers internally
Add dedicated internal types for Int64 and UnsignedInt64. This makes it a bit more straightforward to work with 64-bit numbers (instead of just implicitly storing them as doubles.)
This commit is contained in:
@@ -93,15 +93,29 @@ GVariant::GVariant(const JsonValue& value)
|
||||
return;
|
||||
}
|
||||
|
||||
if (value.is_int()) {
|
||||
if (value.is_i32()) {
|
||||
m_type = Type::Int;
|
||||
m_value.as_int = value.as_int();
|
||||
m_value.as_int = value.as_i32();
|
||||
return;
|
||||
}
|
||||
|
||||
if (value.is_uint()) {
|
||||
if (value.is_u32()) {
|
||||
m_type = Type::UnsignedInt;
|
||||
m_value.as_uint = value.as_uint();
|
||||
m_value.as_uint = value.as_u32();
|
||||
return;
|
||||
}
|
||||
|
||||
if (value.is_i64()) {
|
||||
// FIXME: GVariant should have a 64-bit internal type.
|
||||
m_type = Type::Int;
|
||||
m_value.as_int = value.to_i32();
|
||||
return;
|
||||
}
|
||||
|
||||
if (value.is_u64()) {
|
||||
// FIXME: GVariant should have a 64-bit internal type.
|
||||
m_type = Type::UnsignedInt;
|
||||
m_value.as_uint = value.to_u32();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user