Утечка памяти из-за оператора возврата в `ставит" Hello World "метод - PullRequest
0 голосов
/ 04 мая 2018

Пытаясь портировать Ruby 1.8.7 на emscripten, у меня есть бесконечный цикл, который делает некоторые вещи с ruby, используя C API, rb_eval_string. Теперь, если я сделаю просто puts "Hello World" в цикле, утечки не будет. Далее, если я вызываю my_func_one из основного цикла, утечка памяти все еще не происходит, но для my_func_two использование памяти постоянно увеличивается. Эти функции определены как

def my_func_one
    puts "Hello World"
end

def my_func_two
    puts "Hello World"
    return
end

Это ошибка или я что-то не так делаю?

РЕДАКТИРОВАТЬ: мой код C в строках

void main_update_loop() {
    rb_eval_string("my_func_one");
}

, где основной цикл установлен с помощью emscripten_set_main_loop(main_update_loop, 0, 1);. Я измеряю использование памяти с помощью memoryprofiler.js

...