refcounting

    3热度

    1回答

    我在尝试将旧项目转换为ARC。我的项目依赖于Cocos2D,它是第三方非ARC库。所有Cocos2D源文件都是单独目标的一部分,并被编译为静态库。 但是,ARC迁移程序在Cocos2D源文件中返回ARC semantic issue错误,即使它们不是我试图转换的主要目标的一部分。 这可能是什么原因?那源代码应该不重要,对吗?

    1热度

    1回答

    下面的代码: <?php function f($b) { echo xdebug_debug_zval('b'); } function g() { echo xdebug_debug_zval('a'); } $a = 10; f($a); f(&$a); g(); echo xdebug_debug_zval('a'); ?> 输出是: b:

    4热度

    1回答

    我在摆弄python的ctypes模块以更好地理解垃圾收集器的工作原理。在翻译的过程中,我遇到了这种奇怪的情况: >>>import ctypes >>>def get_ref(obj): ... """ This returns the refcount of obj as a c_size_t """ ... return ctypes.c_size_t.from_address(id(

    1热度

    1回答

    我在C以下的常规,我用它来把字符串数组转换为字符串 PyObject* build_pylist(char** strings, unsigned int string_cnt){ PyObject* list = PyList_New(string_cnt); int i; for(i = 0; i < string_cnt; i++){ PyObj

    3热度

    2回答

    与std::shared_ptr一起工作很多我错过了shared_ref实施。这是shared_ptr的专业化,它保证,它永远不会包装nullptr(当然,正确使用)。 我有点奇怪它为什么不在C++ 11标准中。实施它有没有任何市长问题?在我的头顶,我想不出任何。 编辑: 我希望有类似的接口: template <typename T> class shared_ref { public:

    8热度

    1回答

    如何使用std.typecons.RefCounted!(T),以使d引用计数的对象? 我试图找出什么std.array.Array在内部通过查看源代码,但虽然我可以读取源,但我不能确定什么是“有效载荷”或它是如何工作的涉及的按位结构复制,以及为什么有些东西在内部和外部结构中是重复的。 谁能提供一个例子或如何使用它,比方说,包装一个简单的Win32 HANDLE链接? 谢谢!

    2热度

    1回答

    因此,我已经放在一起Python C扩展,虽然他们各自的行为已验证,我想通过一些refcount调试来验证这一点。 如何确认我已正确插入INC/DEC refcounts?我想从黑匣子的角度来做这个验证,也就是说,如果所有的refcount都已经正确完成,函数的输入/输出/内存应该如何查看? 我的第一种方法是使用sys.getrefcount(obj)并检查所有输入/输出对象的refcounts以

    1热度

    1回答

    当我将信号连接到回调函数时,回调函数获取参数。在对象传递给我的回调函数之前,reference counter是否增加了,还是我必须自己增加它。 我想这肯定有某种约定,因为在gtk或libgobject的文档中没有提到那样的东西。

    7热度

    2回答

    我想在Java中编写DagNode类,其中两个节点在逻辑上相等,如果它们相等作为参考。 在C++ —的想法(我在C很++)—是使用智能指针和引用计数: 当创建一个节点,我会查找在如果某些表节点已经存在。如果是这样,我会返回一个指向旧的指针。否则,重新创建一个节点。 重载的C++方法(如复制构造函数和析构函数)将执行参考计数,并且当节点的ref计数降至0时,该节点将从上述表中逐出。 (C++也将释放

    1热度

    2回答

    我使用笔尖作为几个按钮的模板。它似乎工作正常,他们每个人都有自己的独立国家。但是,当我释放按钮时,我会在dealloc中崩溃。下面是代码... mSoundBtns = new cSoundButton*[mNumSounds]; for(unsigned int i = 0 ; i < mNumSounds; ++i) { mSoundBtns[i] = nil; } for(