| 66 | |
| 67 | template <typename Writer> |
| 68 | void 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 | } |
| 110 | SERIALIZE_EXPLICIT_INSTANTIATION(common::Function) |
| 111 | |
| 112 | void deserialize(const rapidjson::Value& val, common::Function& f) |
nothing calls this directly
no test coverage detected