浏览代码

Fixed pointer bug

channel
Ludovic 'Archivist' Lagouardette 3 年前
父节点
当前提交
fa2cffbb24
共有 1 个文件被更改,包括 4 次插入4 次删除
  1. +4
    -4
      include/gp/pointers.hpp

+ 4
- 4
include/gp/pointers.hpp 查看文件

@ -72,8 +72,11 @@ namespace gp {
shared_ptr(T* _data, gp::allocator& _owner)
: data(_data)
, refcounter((std::atomic_int)owner.allocate(sizeof(std::atomic_int)))
, owner(_owner)
{}
{
refcounter->store(1);
}
void dirty_clear() {
if(!refcounter) return;
@ -89,9 +92,6 @@ namespace gp {
template<typename ...U>
static shared_ptr make(gp::allocator& owner, U&&... args) {
auto ptr = owner.allocate(sizeof(T));
auto shared_atomic = owner.allocate(sizeof(std::atomic_int));
refcounter = new(shared_atomic) std::atomic_int();
refcounter->store(1);
return shared_ptr(new(ptr) T(gp::forward<U>(args)...), owner);
}

正在加载...
取消
保存