mirror of
https://github.com/SerenityOS/serenity.git
synced 2025-01-23 18:02:05 -05:00
AK+IPCCompiler: Get rid of BufferStream overloads for size_t
Since BufferStream is about creating specific binary stream formats, let's not have a flaky type like size_t in there. Instead, clients of BufferStream can cast their size_t to the binary size they want to use. Account for this in IPCCompiler by making String lengths always 32-bit.
This commit is contained in:
parent
be0034d2ca
commit
0cff25ac78
2 changed files with 3 additions and 40 deletions
|
@ -297,43 +297,6 @@ public:
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
BufferStream& operator<<(size_t value)
|
|
||||||
{
|
|
||||||
if constexpr(sizeof(size_t) == 4)
|
|
||||||
return *this << (u32)value;
|
|
||||||
else if constexpr(sizeof(size_t) == 8)
|
|
||||||
return *this << (u64)value;
|
|
||||||
ASSERT_NOT_REACHED();
|
|
||||||
}
|
|
||||||
BufferStream& operator>>(size_t& value)
|
|
||||||
{
|
|
||||||
if constexpr(sizeof(size_t) == 4)
|
|
||||||
return *this >> (u32&)value;
|
|
||||||
else if constexpr(sizeof(size_t) == 8)
|
|
||||||
return *this >> (u64&)value;
|
|
||||||
ASSERT_NOT_REACHED();
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef __i386__
|
|
||||||
BufferStream& operator<<(ssize_t value)
|
|
||||||
{
|
|
||||||
if constexpr(sizeof(ssize_t) == 4)
|
|
||||||
return *this << (i32)value;
|
|
||||||
else if constexpr(sizeof(ssize_t) == 8)
|
|
||||||
return *this << (i64)value;
|
|
||||||
ASSERT_NOT_REACHED();
|
|
||||||
}
|
|
||||||
BufferStream& operator>>(ssize_t& value)
|
|
||||||
{
|
|
||||||
if constexpr(sizeof(ssize_t) == 4)
|
|
||||||
return *this >> (i32&)value;
|
|
||||||
else if constexpr(sizeof(ssize_t) == 8)
|
|
||||||
return *this >> (i64&)value;
|
|
||||||
ASSERT_NOT_REACHED();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
BufferStream& operator<<(const char* value)
|
BufferStream& operator<<(const char* value)
|
||||||
{
|
{
|
||||||
return *this << StringView(value);
|
return *this << StringView(value);
|
||||||
|
|
|
@ -310,11 +310,11 @@ int main(int argc, char** argv)
|
||||||
dbg() << " " << parameter.type << " " << parameter.name << " = " << initial_value << ";";
|
dbg() << " " << parameter.type << " " << parameter.name << " = " << initial_value << ";";
|
||||||
|
|
||||||
if (parameter.type == "String") {
|
if (parameter.type == "String") {
|
||||||
dbg() << " size_t " << parameter.name << "_length = 0;";
|
dbg() << " u32 " << parameter.name << "_length = 0;";
|
||||||
dbg() << " stream >> " << parameter.name << "_length;";
|
dbg() << " stream >> " << parameter.name << "_length;";
|
||||||
dbg() << " if (" << parameter.name << "_length == 0) {";
|
dbg() << " if (" << parameter.name << "_length == 0) {";
|
||||||
dbg() << " " << parameter.name << " = String::empty();";
|
dbg() << " " << parameter.name << " = String::empty();";
|
||||||
dbg() << " } else if ((ssize_t)" << parameter.name << "_length == -1) {";
|
dbg() << " } else if ((i32)" << parameter.name << "_length == -1) {";
|
||||||
dbg() << " " << parameter.name << " = String();";
|
dbg() << " " << parameter.name << " = String();";
|
||||||
dbg() << " } else {";
|
dbg() << " } else {";
|
||||||
dbg() << " char* " << parameter.name << "_buffer = nullptr;";
|
dbg() << " char* " << parameter.name << "_buffer = nullptr;";
|
||||||
|
@ -395,7 +395,7 @@ int main(int argc, char** argv)
|
||||||
for (auto& parameter : parameters) {
|
for (auto& parameter : parameters) {
|
||||||
if (parameter.type == "String") {
|
if (parameter.type == "String") {
|
||||||
dbg() << " if (m_" << parameter.name << ".is_null()) {";
|
dbg() << " if (m_" << parameter.name << ".is_null()) {";
|
||||||
dbg() << " stream << (ssize_t)-1;";
|
dbg() << " stream << (i32)-1;";
|
||||||
dbg() << " } else {";
|
dbg() << " } else {";
|
||||||
dbg() << " stream << m_" << parameter.name << ".length();";
|
dbg() << " stream << m_" << parameter.name << ".length();";
|
||||||
dbg() << " stream << m_" << parameter.name << ";";
|
dbg() << " stream << m_" << parameter.name << ";";
|
||||||
|
|
Loading…
Add table
Reference in a new issue