MCPcopy Create free account
hub / github.com/avast/retdec / serialize

Function serialize

src/serdes/function.cpp:68–109  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

66
67template <typename Writer>
68void serialize(Writer& writer, const common::Function& f)
69{
70 writer.StartObject();
71
72 serializeString(writer, JSON_name, f.getName());
73 serialize(writer, JSON_cc, f.callingConvention);
74 serializeString(
75 writer,
76 JSON_fncType,
77 fncTypes[static_cast<size_t>(f.getLinkType())]
78 );
79
80 serializeString(writer, JSON_realName, f.getRealName());
81 serializeString(writer, JSON_demangledName, f.getDemangledName());
82 serializeString(writer, JSON_comment, f.getComment());
83 serializeString(writer, JSON_decStr, f.getDeclarationString());
84 serializeString(writer, JSON_wrappedName, f.getWrappedFunctionName());
85 serializeString(writer, JSON_srcFileName, f.getSourceFileName());
86 serialize(writer, JSON_startAddr, f.getStart(), f.getStart().isDefined());
87 serialize(writer, JSON_endAddr, f.getEnd(), f.getEnd().isDefined());
88 serialize(writer, JSON_startLine, f.getStartLine(), f.getStartLine().isDefined());
89 serialize(writer, JSON_endLine, f.getEndLine(), f.getEndLine().isDefined());
90
91 serializeBool(writer, JSON_fromDebug, f.isFromDebug(), false);
92 serializeBool(writer, JSON_isConstructor, f.isConstructor(), false);
93 serializeBool(writer, JSON_isDestructor, f.isDestructor(), false);
94 serializeBool(writer, JSON_isVirtual, f.isVirtual(), false);
95 serializeBool(writer, JSON_isExported, f.isExported(), false);
96 serializeBool(writer, JSON_isVariadic, f.isVariadic(), false);
97 serializeBool(writer, JSON_isThumb, f.isThumb(), false);
98
99 serialize(writer, JSON_returnStorage, f.returnStorage, f.returnStorage.isDefined());
100 serialize(writer, JSON_fbStorage, f.frameBaseStorage, f.frameBaseStorage.isDefined());
101 serialize(writer, JSON_returnType, f.returnType, f.returnType.isDefined());
102
103 serializeContainer(writer, JSON_locals, f.locals);
104 serializeContainer(writer, JSON_parameters, f.parameters);
105 serializeContainer(writer, JSON_basicBlocks, f.basicBlocks);
106 serializeContainer(writer, JSON_usedCrypto, f.usedCryptoConstants);
107
108 writer.EndObject();
109}
110SERIALIZE_EXPLICIT_INSTANTIATION(common::Function)
111
112void deserialize(const rapidjson::Value& val, common::Function& f)

Callers

nothing calls this directly

Calls 15

serializeBoolFunction · 0.85
serializeContainerFunction · 0.85
getLinkTypeMethod · 0.80
getCommentMethod · 0.80
getDeclarationStringMethod · 0.80
getSourceFileNameMethod · 0.80
getStartLineMethod · 0.80
getEndLineMethod · 0.80
isDestructorMethod · 0.80
isExportedMethod · 0.80
serializeStringFunction · 0.50

Tested by

no test coverage detected