Skip to content

Commit

Permalink
Fix some bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
beckdave committed Jan 11, 2024
1 parent 2d8efd7 commit f6511a4
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 9 deletions.
2 changes: 1 addition & 1 deletion inc/finalmq/serializeqt/ParserQt.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ namespace finalmq {

bool parseQVariantHeader(const MetaField& field);

const char* m_ptr = nullptr;
const std::uint8_t* m_ptr = nullptr;
ssize_t m_size = 0;
IParserVisitor& m_visitor;
const Mode m_mode = Mode::NONE;
Expand Down
1 change: 1 addition & 0 deletions inc/finalmq/serializeqt/SerializerQt.h
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ namespace finalmq {
virtual void enterArrayEnumMove(const MetaField& field, std::vector<std::string>&& value) override;
virtual void enterArrayEnum(const MetaField& field, const std::vector<std::string>& value) override;

void serialize(char value);
void serialize(std::int8_t value);
void serialize(std::uint8_t value);
void serialize(std::int16_t value);
Expand Down
2 changes: 1 addition & 1 deletion src/metadataserialize/MetaDataExchange.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ void MetaDataExchange::importMetaData(const SerializeMetaData& metadata)
typeWithNamespace = metadata.namespace_ + "." + fieldSource.type;
}

fields.push_back({convert(fieldSource.tid), typeWithNamespace, fieldSource.name, fieldSource.desc, flags, fieldSource.attrs, -1});
fields.emplace_back(convert(fieldSource.tid), typeWithNamespace, fieldSource.name, fieldSource.desc, flags, fieldSource.attrs, -1);
}
int flagsStruct = 0;
std::for_each(structSource.flags.begin(), structSource.flags.end(), [&flagsStruct](const SerializeMetaStructFlags& flag) {
Expand Down
14 changes: 7 additions & 7 deletions src/serializeqt/ParserQt.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ namespace finalmq {


ParserQt::ParserQt(IParserVisitor& visitor, const char* ptr, ssize_t size, Mode mode)
: m_ptr(ptr)
: m_ptr(reinterpret_cast<const std::uint8_t*>(ptr))
, m_size(size)
, m_visitor(visitor)
, m_mode(mode)
Expand All @@ -58,7 +58,7 @@ namespace finalmq {
const MetaStruct* stru = MetaDataGlobal::instance().getStruct(typeName);
if (!stru)
{
m_visitor.notifyError(m_ptr, "typename not found");
m_visitor.notifyError(reinterpret_cast<const char*>(m_ptr), "typename not found");
m_visitor.finished();
return false;
}
Expand All @@ -70,7 +70,7 @@ namespace finalmq {
bool ok = parse(count);
if (ok && count != numberOfFields)
{
m_visitor.notifyError(m_ptr, "number of fields does not match");
m_visitor.notifyError(reinterpret_cast<const char*>(m_ptr), "number of fields does not match");
m_visitor.finished();
return false;
}
Expand Down Expand Up @@ -313,7 +313,7 @@ namespace finalmq {
const MetaStruct* stru = MetaDataGlobal::instance().getStruct(field->typeName);
if (!stru)
{
m_visitor.notifyError(m_ptr, "typename not found");
m_visitor.notifyError(reinterpret_cast<const char*>(m_ptr), "typename not found");
m_visitor.finished();
ok = false;
}
Expand Down Expand Up @@ -853,7 +853,7 @@ namespace finalmq {
if (m_size >= size)
{
assert(m_ptr);
buffer = m_ptr;
buffer = reinterpret_cast<const char*>(m_ptr);
m_ptr += size;
m_size -= size;
return true;
Expand Down Expand Up @@ -955,7 +955,7 @@ namespace finalmq {
const MetaStruct* stru = MetaDataGlobal::instance().getStruct(field);
if (!stru)
{
m_visitor.notifyError(m_ptr, "typename not found");
m_visitor.notifyError(reinterpret_cast<const char*>(m_ptr), "typename not found");
return false;
}

Expand All @@ -969,7 +969,7 @@ namespace finalmq {
m_visitor.exitStruct(*fieldWithoutArray);
}
m_visitor.exitArrayStruct(field);

return (m_ptr != nullptr);
}

Expand Down
5 changes: 5 additions & 0 deletions src/serializeqt/SerializerQt.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -612,6 +612,11 @@ namespace finalmq {
}


void SerializerQt::Internal::serialize(char value)
{
serialize(static_cast<std::uint8_t>(value));
}

void SerializerQt::Internal::serialize(std::int8_t value)
{
serialize(static_cast<std::uint8_t>(value));
Expand Down

0 comments on commit f6511a4

Please sign in to comment.