mirror of
https://github.com/Lime3DS/Lime3DS.git
synced 2024-11-27 12:04:16 +01:00
Kernel: Don't re-assign object's handle when duplicating one
This commit is contained in:
parent
6ae12424df
commit
d751de7341
@ -44,7 +44,8 @@ ResultVal<Handle> HandleTable::Create(Object* obj) {
|
|||||||
objects[slot] = obj;
|
objects[slot] = obj;
|
||||||
|
|
||||||
Handle handle = generation | (slot << 15);
|
Handle handle = generation | (slot << 15);
|
||||||
obj->handle = handle;
|
if (obj->handle == INVALID_HANDLE)
|
||||||
|
obj->handle = handle;
|
||||||
return MakeResult<Handle>(handle);
|
return MakeResult<Handle>(handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ class HandleTable;
|
|||||||
|
|
||||||
class Object : NonCopyable {
|
class Object : NonCopyable {
|
||||||
friend class HandleTable;
|
friend class HandleTable;
|
||||||
u32 handle;
|
u32 handle = INVALID_HANDLE;
|
||||||
public:
|
public:
|
||||||
virtual ~Object() {}
|
virtual ~Object() {}
|
||||||
Handle GetHandle() const { return handle; }
|
Handle GetHandle() const { return handle; }
|
||||||
|
Loading…
Reference in New Issue
Block a user