MCPcopy Create free account
hub / github.com/Tencent/tgfx / Append

Method Append

src/gpu/resources/ResourceKey.cpp:91–112  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

89}
90
91UniqueKey UniqueKey::Append(const UniqueKey& uniqueKey, const uint32_t* data, size_t count) {
92 if (uniqueKey.empty()) {
93 return {};
94 }
95 if (count == 0) {
96 return uniqueKey;
97 }
98 auto offset = std::max(uniqueKey.count, static_cast<size_t>(2));
99 auto newData = CopyData(data, count, offset);
100 if (newData == nullptr) {
101 return uniqueKey;
102 }
103 if (uniqueKey.count > 2) {
104 memcpy(newData + 2, uniqueKey.data + 2, (uniqueKey.count - 2) * sizeof(uint32_t));
105 }
106 auto newCount = count + offset;
107 auto domain = uniqueKey.uniqueDomain;
108 newData[1] = domain->uniqueID();
109 newData[0] = HashRange(newData + 1, newCount - 1);
110 domain->addReference();
111 return {newData, newCount, domain};
112}
113
114static uint32_t* MakeDomainData(UniqueDomain* uniqueDomain) {
115 DEBUG_ASSERT(uniqueDomain != nullptr);

Callers

nothing calls this directly

Calls 5

CopyDataFunction · 0.85
HashRangeFunction · 0.85
emptyMethod · 0.45
uniqueIDMethod · 0.45
addReferenceMethod · 0.45

Tested by

no test coverage detected