问题标签 [refcounting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
53 浏览

python - 为什么我的 Python 扩展类型有两个引用计数而不是一个?

我正在维护一个使用 Python C API 构建为 Python 扩展的 Python 类型。我的问题是关于这个“NamedArray”对象的生命周期。基本上我的测试代码如下所示:

我的问题是新实例化的 NamedArray 对象的引用计数为 2,但我希望它为 1。另一个引用来自哪里?

0 投票
1 回答
75 浏览

c++ - 引用计数 - 内部引用问题

我已经实现了自己的智能指针,一切正常,直到我意识到我的实现存在致命缺陷。问题是一个对象可以有一个智能指针,它可能持有对自身的引用。如果这是一个单层问题,这个问题将很容易避免 - 很容易发生的是一个引用计数的类将间接(通过其成员之一)持有对自身的引用。这意味着一个对象永远不会被删除删除。有什么办法/方法可以解决这个问题吗?

最简单的例子:

Object 是包含引用计数器的基类, ref 是智能指针,包含对其分配对象的引用

0 投票
0 回答
54 浏览

rust - RC> 借用不可变锁模式匹配

我写了一个代码来解决树问题,Rc RefCell用来包装树节点结构(实际上这部分是由 leetcode 提供的)。

我试图保存这棵树中每个节点的引用计数,但在模式匹配中,我不允许 match q[0].borrow().left.clone(),因为它借用 q[0].borrow() 作为不可变的内联。

我最终得到了一个解决方法,但我无法解释它,并希望能看到针对这种情况的更好解决方案。

错误日志:

有什么优雅的方法可以实现与上述相同的语义吗?

我的解决方法是:

我也不明白为什么这会避免borrow问题。