emscripten-core/emscripten

WebIDL binder: Use WeakRefs in cache

開放

#9,854 建立於 2019年11月18日

 (7 則留言) (2 個反應) (0 位負責人)C++ (3,519 個分叉)batch import
good first bughelp wanted

倉庫指標

星標
 (27,361 顆星)
PR 合併指標
 (PR 指標待抓取)

描述

The cache maps C pointers (integers) to JS object wrappers. It currently keeps objects alive forever. This is normally ok as the objects should be manually destroy()ed, however, we do allow wrapping a class as a parent class, and then it ends up in multiple caches, see https://github.com/kripken/ammo.js/issues/284

Using WeakRefs where available could avoid this. However, until they are present everywhere, perhaps we could analyze the inheritance graph and clean up parent caches too, but that may be tricky especially with multiple/virtual/etc. inheritance.

貢獻者指南