问题标签 [reference-counting]

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 回答
115 浏览

firefox-addon - 如何 AddRef() 一个 nsCOMPtr 用作输出参数?

我的班级有一名成员:

我有这样做的方法:

但是 Gecko 9 强制你不能调用AddRef()or Release()on nsCOMPtr<>s。所以现在我正在这样做:

但是直接访问原始指针让我觉得很脏。AddRef()在吸气剂中取出参数的正确方法是什么?

文档没有帮助。

0 投票
4 回答
422 浏览

c++ - 是否可以在没有模板的情况下创建一个简单的智能指针基类?

我想知道是否可以在不使用模板的情况下创建智能指针基类?

我见过许多实现,但都使用模板。例如,在其他类派生的基类中实现智能指针逻辑。

0 投票
5 回答
2157 浏览

java - 为什么 JVM 不会在引用计数达到 0 时立即销毁资源?

我一直想知道为什么 Java 中的垃圾收集器会在需要时激活而不是激活:

我忽略了Java如何做它有什么大的优势吗?

谢谢

0 投票
1 回答
444 浏览

c++ - 使用 std::tr1::shared_ptr 作为引用计数的内部机制

出于引用计数的目的,在下面的示例代码中使用 std::tr1::shared_ptr 是否安全且正确?(这只是一个特定的示例,该类可以包含其他任何内容(void*)而不是 FILE*)

0 投票
0 回答
203 浏览

memory - 为什么引用计数 GC 被污名化?

我曾经在某个地方读到过一个关于理想主义但“懒惰”的程序员尝试实现编程语言的共同想法。如下:-

“我知道,我会做一个易于实现和快速编写的引用计数 GCer,然后在我有时间的时候将它重新实现为真正的 GCer。”

自然,这种重新实现永远不会发生。

但是,我质疑为什么需要这样的重新实现。为什么增量和并发种类的标记和清除收集器被认为优于 Perl 5 和 Python 等语言采用的所谓过时的方法?(是的,我知道 Python 通过标记和清除收集器增强了这种方法。)

循环引用是此类讨论中提出的第一个主题。是的,这可能会很痛苦(请参阅 Perl 中的递归代码引用,并修复它涉及多个分配和引用削弱。)是的,当编码人员必须不断监视此类引用的引用时,它就不那么优雅了。

替代方案更好吗?我们可以讨论永恒的细粒度实现细节,但事实是,大多数标记和清除 GC 实现存在以下问题:-

  • 资源的非确定性破坏,导致代码难以推理且过于冗长(请参阅 .NET 中的 IDispose 或许多其他语言中的 try/finally 替换。)
  • 不同类别的垃圾的额外复杂性,对于短期、长期以及介于两者之间的所有内容,这种复杂性似乎是合理性能所必需的。
  • 要么需要另一个线程,要么需要定期停止程序的执行以执行收集。

标记和清除的失败是否可以解决引用计数问题,这些问题可以通过弱引用来缓解?

0 投票
2 回答
601 浏览

delphi - Delphi接口引用计数的实现是未来的证明吗

我有一个将在整个应用程序中广泛使用的辅助类。实现依赖于接口引用计数,思路大致是:

所以实现依赖于 IMyHelper 在方法结束时超出范围,但不是之前。

那么我要问的是,如果在其余方法中未访问变量,我能否确定在某些未来 Delphi 编译器不会发挥智能并在创建接口后立即释放接口?

0 投票
3 回答
162 浏览

ios - A tool in Xcode to check wether a function retains or not?

I'm currently working on an iOs application, and there is this one thing that is such a pain in the... well, a pain anyway : I always have to check the documentation to know wether an object property is retained or not (for instance, the setDelegate of the UITextField assigns the delegate and doesn't retain it, whereas the setFont function retains... https://developer.apple.com/library/ios/#documentation/uikit/reference/UITextField_Class/Reference/UITextField.html)

It's... a pain. Is there a way to know such a thing directly in Xcode ?

Thanks in advance

0 投票
1 回答
4437 浏览

iphone - ios @try @catch 从@catch 返回时阻止 EXC_BAD_ACCESS

我的 viewDidLoad 中的这个 @try-@catch 块在返回时与 EXC_BAD_ACCESS 一起崩溃;在 catch 中执行并且警报也不显示:

此代码在 viewDidLoad 中运行,以检索在应用程序的先前运行期间已存档的数据。我在这段代码中遇到了一个异常,指出存档无法理解。但是随着它崩溃,根本无法让应用程序运行,因为它在启动时和捕获时都会崩溃。有任何想法吗?

0 投票
2 回答
1313 浏览

iphone - ABContact 的替代通讯簿 API 助手

我有一个 Iphone 应用程序,它使用了由Erica Sedun 最初编写并在 github 上发布的出色的 ABContactHelper 库

现在随着 XCode4 和引用计数支持的发布,它会导致很多错误。我查看了 github 上的分支,但似乎没有一个更新到带有引用计数的 XCode 4。我正在尝试自己更新它,但它速度慢且容易出错。我尝试了自动重构支持,但无济于事。

有谁知道替代的 AddressBook 包装器,它提供了一个简单的接口来与 iPhone AddressBook 交互?

0 投票
1 回答
25 浏览

objective-c - 在 XCode 中使用带有新引用计数的旧库

最新版本的 XCode 支持引用计数。然而,许多较旧的库与新的引用计数架构不兼容。

是否有编译器选项或其他东西可以将非引用计数库与新的引用计数应用程序一起使用,还是我总是必须更新代码?

使用 C 的库会发生什么(显然没有引用计数)?