mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-30 16:58:40 -04:00
parent
08339d3b80
commit
55951c3025
@ -165,6 +165,12 @@ clear_python_tag(PyObject *key) {
|
|||||||
if (PyDict_GetItem(dict, key) != nullptr) {
|
if (PyDict_GetItem(dict, key) != nullptr) {
|
||||||
PyDict_DelItem(dict, key);
|
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
|
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():
|
def test_nodepath_replace_texture():
|
||||||
from panda3d.core import NodePath, Texture
|
from panda3d.core import NodePath, Texture
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user