fix(ecs): getZipper([]) and getIndexedZipper([]) loop up to SIZE_MAX
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 74/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- cpp, typescript, wasm
Direção de pesquisa
Leia as duas funções em modules/ecs/wasm/Registry.hpp:300-322 e 338-360, com foco em como uma lista de componentes vazia define max e em como o loop cria objetos JavaScript. Confira os testes de ECS em modules/ecs/test, que, segundo o issue, atualmente não têm testes de zipper. A tarefa estará concluída quando ambas as chamadas de zipper com listas de componentes vazias retornarem arrays vazios, o erro de digitação std::size_t for corrigido e os testes cobrirem esse comportamento.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Which package is this bug report for?
ecs
Issue description
With no component in the list, max stays SIZE_MAX, every index passes, and a JS object is pushed for each one: one call hangs the tab or the server and fills memory. std:size_t (lines 309 and 347) is a typo that compiles as a label. The two functions are near copies.
Where:
Evidence:
std::size_t max = SIZE_MAX;
...
std:size_t zipper_idx = 0;
for (std::size_t idx = 0; idx < max; idx++) {
emscripten::val obj = emscripten::val::object();
Suggested fix: Return an empty array when comps is empty, fix the std::size_t typo, and merge the two zippers behind an indexed flag. Add zipper tests (modules/ecs/test has none).
Found during a code audit of main at be72076.
Code sample
No response
Versions
- Engine
mainat be72076 - pnpm 12.0.0, Node.js 26, Bun 1.3.14
Issue priority
Medium (should be fixed soon)
I have tested this issue on a development release
be72076
- Linguagem predominante
- TypeScript
- Estrelas
- 7
- Forks
- 2
- Merge médio
- 1d 17h
- PRs com merge (30d)
- 17
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de NanoForge-dev/Engine
-
dependencies enhancement good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
NanoForge-dev/Engine#513 ·
Mantenedores costumam responder em até 1 dia
-
bug chore tests
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 77/100
NanoForge-dev/Engine#511 ·
Mantenedores costumam responder em até 1 dia
-
docs(network): TSDoc says ICE_SERVERS defaults to an empty list, the code uses public STUN serversAbertadocumentation good first issue modules:network
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
NanoForge-dev/Engine#509 ·
Mantenedores costumam responder em até 1 dia
-
documentation modules:ecs packages:asset packages:core
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
NanoForge-dev/Engine#508 ·
Mantenedores costumam responder em até 1 dia
-
bug good first issue modules:music modules:sound
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
NanoForge-dev/Engine#505 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de NanoForge-dev/Engine
Issues semelhantes
-
Mend: dependency security vulnerability
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 65/100
fdm-monster/fdm-monster#5563 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
be-BOP-io-SA/be-BOP#2849 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 79/100
Mantenedores costumam responder em até 1 dia
-
1️⃣ phase/under-investigation flaky/confirmed flaky/needs-decision type/bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
growilabs/growi#12246 · 3 comentários ·
Mantenedores costumam responder em até 1 dia
-
🐛 The Rulekeeper - An index run that gives up on the lock ends SucceededTalvez já em andamento @github-actions assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
SSWConsulting/SSW.Rules#2809 · 1 comentário ·
Mantenedores costumam responder em até 1 dia