Potential memory leak

Aberta
#12 2 comentários 1 reação 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
25/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
c, javascript
Domínio
tooling

Direção de pesquisa

Comece em tools/gen_lib.js, na alocação por volta da linha 52 e na limpeza por volta da linha 63. Rastreie o que acontece quando as alocações excedem FRAME_ALLOC_SIZE e então determine se o projeto deve emitir um aviso no limite ou remover a abordagem de alocação fixa. Está concluído quando o caso de alocação excedente não vazar mais silenciosamente e o comportamento escolhido estiver documentado ou verificado.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

It seems memory will be leaked if you allocate more pointers than FRAME_ALLOC_SIZE, or 1024*512, or 524,288.
https://github.com/konsumer/raylib-pointers/blob/7f2340c4b82fd13e4f00fe682c8b234e3b043ae9/tools/gen_lib.js#L52

Here's where you free only up to _frame_alloc_counter.
https://github.com/konsumer/raylib-pointers/blob/7f2340c4b82fd13e4f00fe682c8b234e3b043ae9/tools/gen_lib.js#L63

A few solutions off the top of my head:

  1. Show some warning when reaching the limit to make the memory leak obvious.
  2. Remove FRAME_ALLOC_SIZE altogether. I think a good way to do that is to only ever have one pointer allocated that'll be used to carry the result, but is freed on the next raylib-function call. Then the receiving/duping/allocating can be done by JS on the JS side, instead of the C side.
Linguagem predominante
C
Estrelas
0
Forks
1
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de konsumer/raylib-pointers

Todas as issues de konsumer/raylib-pointers

Issues semelhantes

Mais issues de C

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.