mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-29 16:20:11 -04:00
parent
08339d3b80
commit
55951c3025
@ -165,6 +165,12 @@ clear_python_tag(PyObject *key) {
|
||||
if (PyDict_GetItem(dict, key) != nullptr) {
|
||||
PyDict_DelItem(dict, key);
|
||||
}
|
||||
|
||||
if (PyDict_Size(dict) == 0 && Py_REFCNT(dict) == 1) {
|
||||
// This was the last tag, and do_get_python_tags() made sure we have a
|
||||
// unique reference to the tags, so clear the tag object.
|
||||
_this->_python_tag_data.clear();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -151,6 +151,35 @@ def test_nodepath_python_tags():
|
||||
assert rc1 == rc2
|
||||
|
||||
|
||||
def test_nodepath_clear_python_tag():
|
||||
from panda3d.core import NodePath
|
||||
|
||||
path = NodePath("node")
|
||||
assert not path.has_python_tag("a")
|
||||
assert not path.has_python_tag("b")
|
||||
assert not path.node().has_tags()
|
||||
|
||||
path.set_python_tag("a", "value")
|
||||
assert path.has_python_tag("a")
|
||||
assert not path.has_python_tag("b")
|
||||
assert path.node().has_tags()
|
||||
|
||||
path.set_python_tag("b", "value")
|
||||
assert path.has_python_tag("a")
|
||||
assert path.has_python_tag("b")
|
||||
assert path.node().has_tags()
|
||||
|
||||
path.clear_python_tag("a")
|
||||
assert not path.has_python_tag("a")
|
||||
assert path.has_python_tag("b")
|
||||
assert path.node().has_tags()
|
||||
|
||||
path.clear_python_tag("b")
|
||||
assert not path.has_python_tag("a")
|
||||
assert not path.has_python_tag("b")
|
||||
assert not path.node().has_tags()
|
||||
|
||||
|
||||
def test_nodepath_replace_texture():
|
||||
from panda3d.core import NodePath, Texture
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user