MCPcopy Create free account
hub / github.com/defold/defold / LoadManifest

Function LoadManifest

engine/resource/src/providers/provider_zip.cpp:177–202  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

175}
176
177static dmResourceProvider::Result LoadManifest(dmZip::HZip zip, const char* path, dmResource::HManifest* manifest)
178{
179 dmZip::Result zr = dmZip::OpenEntry(zip, path);
180 if (dmZip::RESULT_OK != zr)
181 {
182 dmLogError("Failed to find entry '%s'", path);
183 return dmResourceProvider::RESULT_NOT_FOUND;
184 }
185
186 uint32_t manifest_len;
187 dmZip::GetEntrySize(zip, &manifest_len);
188 uint8_t* manifest_data = new uint8_t[manifest_len];
189 dmZip::GetEntryData(zip, (void*)manifest_data, manifest_len);
190 dmZip::CloseEntry(zip);
191
192 dmResourceProvider::Result result = dmResourceProvider::RESULT_OK;
193 dmResource::Result r = dmResource::LoadManifestFromBuffer(manifest_data, manifest_len, manifest);
194 if (dmResource::RESULT_OK != r)
195 {
196 dmLogError("Could not read manifest '%s' from archive", path);
197 result = dmResourceProvider::RESULT_INVAL_ERROR;
198 }
199
200 delete[] manifest_data;
201 return result;
202}
203
204static dmResourceProvider::Result Mount(const dmURI::Parts* uri, dmResourceProvider::HArchive base_archive, dmResourceProvider::HArchiveInternal* out_archive)
205{

Callers 2

LoadArchiveFunction · 0.70
MountFunction · 0.70

Calls 5

OpenEntryFunction · 0.85
GetEntrySizeFunction · 0.85
GetEntryDataFunction · 0.85
CloseEntryFunction · 0.85
LoadManifestFromBufferFunction · 0.85

Tested by

no test coverage detected