| 1376 | |
| 1377 | template <typename T> |
| 1378 | void BinaryWriter::WriteNames(const std::vector<T*>& elems, |
| 1379 | NameSectionSubsection type) { |
| 1380 | size_t num_named_elems = 0; |
| 1381 | for (const T* elem : elems) { |
| 1382 | if (!elem->name.empty()) { |
| 1383 | num_named_elems++; |
| 1384 | } |
| 1385 | } |
| 1386 | |
| 1387 | if (!num_named_elems) { |
| 1388 | return; |
| 1389 | } |
| 1390 | |
| 1391 | WriteU32Leb128(stream_, type, "name subsection type"); |
| 1392 | BeginSubsection("name subsection"); |
| 1393 | |
| 1394 | char desc[100]; |
| 1395 | WriteU32Leb128(stream_, num_named_elems, "num names"); |
| 1396 | for (size_t i = 0; i < elems.size(); ++i) { |
| 1397 | const T* elem = elems[i]; |
| 1398 | if (elem->name.empty()) { |
| 1399 | continue; |
| 1400 | } |
| 1401 | WriteU32Leb128(stream_, i, "elem index"); |
| 1402 | wabt_snprintf(desc, sizeof(desc), "elem name %" PRIzd, i); |
| 1403 | WriteDebugName(stream_, elem->name, desc); |
| 1404 | } |
| 1405 | EndSubsection(); |
| 1406 | } |
| 1407 | |
| 1408 | void BinaryWriter::WriteImport(const Import* import) { |
| 1409 | switch (import->kind()) { |
nothing calls this directly
no test coverage detected