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 合并指标
 (平均合并 19天 10小时) (30 天内合并 147 个 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.

贡献者指南