MCPcopy Create free account
hub / github.com/aldelaro5/dolphin-memory-engine / diffList

Method diffList

Source/Structs/FieldDef.cpp:130–198  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

128}
129
130QStringList FieldDef::diffList(FieldDef* const other) const
131{
132 QStringList diffs{};
133 if (m_entry->getLabel() != other->m_entry->getLabel())
134 diffs += QString("Name: %1 -> %2").arg(m_entry->getLabel()).arg(other->m_entry->getLabel());
135 if (m_size != other->m_size)
136 diffs += QString("Field Size: %1 -> %2").arg(m_size).arg(other->m_size);
137 if (m_structOffset != other->m_structOffset)
138 diffs += QString("Struct Offset: %1 -> %2").arg(m_structOffset).arg(other->m_structOffset);
139 if (m_entry->getType() != other->m_entry->getType())
140 diffs += QString("Type: %1 -> %2")
141 .arg(GUICommon::getStringFromType(m_entry->getType()))
142 .arg(GUICommon::getStringFromType(other->m_entry->getType()));
143 if (m_entry->getType() == Common::MemType::type_struct)
144 {
145 if (other->m_entry->getType() == Common::MemType::type_struct &&
146 m_entry->getStructName() != other->m_entry->getStructName())
147 diffs += QString("Struct Name: %1 -> %2")
148 .arg(m_entry->getStructName())
149 .arg(other->m_entry->getStructName());
150 else if (other->m_entry->getType() != Common::MemType::type_struct)
151 diffs += QString("Struct Name: %1 -> N/A").arg(m_entry->getStructName());
152 }
153 else if (other->m_entry->getType() == Common::MemType::type_struct)
154 diffs += QString("Struct Name: N/A -> %1").arg(other->m_entry->getStructName());
155
156 size_t oldSize = Common::getSizeForType(m_entry->getType(), m_entry->getLength());
157 if (m_entry->isBoundToPointer())
158 oldSize = 4;
159
160 size_t newSize = Common::getSizeForType(other->m_entry->getType(), other->m_entry->getLength());
161 if (other->m_entry->isBoundToPointer())
162 newSize = 4;
163
164 if (oldSize != newSize)
165 diffs += QString("Entry Length: %1 -> %2").arg(oldSize).arg(newSize);
166
167 if (m_entry->isBoundToPointer() != other->m_entry->isBoundToPointer())
168 diffs += QString("Is Pointer: %1 -> %2")
169 .arg(m_entry->isBoundToPointer() ? "Yes" : "No")
170 .arg(other->m_entry->isBoundToPointer() ? "Yes" : "No");
171
172 if (m_entry->isBoundToPointer() || other->m_entry->isBoundToPointer())
173 {
174 int i = 0;
175 while (i < static_cast<int>(
176 std::max(m_entry->getPointerLevel(), other->m_entry->getPointerLevel())))
177 {
178 if (static_cast<int>(m_entry->getPointerLevel()) > i)
179 {
180 if (static_cast<int>(other->m_entry->getPointerLevel()) > i &&
181 m_entry->getPointerOffset(i) != other->m_entry->getPointerOffset(i))
182 diffs += QString(" Pointer Offset %1: %2 -> %3")
183 .arg(i)
184 .arg(m_entry->getPointerOffset(i))
185 .arg(other->m_entry->getPointerOffset(i));
186 else if (!(static_cast<int>(other->m_entry->getPointerLevel()) > i))
187 diffs +=

Callers 1

getDiffStringMethod · 0.80

Calls 9

getStringFromTypeFunction · 0.85
getSizeForTypeFunction · 0.85
isBoundToPointerMethod · 0.80
getPointerLevelMethod · 0.80
getPointerOffsetMethod · 0.80
getLabelMethod · 0.45
getTypeMethod · 0.45
getStructNameMethod · 0.45
getLengthMethod · 0.45

Tested by

no test coverage detected