From cb400b5e170e845fa18a246ccc10f56bd7b3691c Mon Sep 17 00:00:00 2001 From: rdb Date: Sun, 24 Jul 2022 21:37:44 +0200 Subject: [PATCH 1/2] interrogatedb: Add functions to obtain getters of make-seqs --- dtool/src/interrogatedb/interrogate_interface.cxx | 13 ++++++++++++- dtool/src/interrogatedb/interrogate_interface.h | 3 ++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/dtool/src/interrogatedb/interrogate_interface.cxx b/dtool/src/interrogatedb/interrogate_interface.cxx index 9f52b2b873..38f03bad11 100644 --- a/dtool/src/interrogatedb/interrogate_interface.cxx +++ b/dtool/src/interrogatedb/interrogate_interface.cxx @@ -494,11 +494,22 @@ interrogate_make_seq_num_name(MakeSeqIndex make_seq) { const char * interrogate_make_seq_element_name(MakeSeqIndex make_seq) { // cerr << "interrogate_make_seq_element_name(" << make_seq << ")\n"; - static string result; FunctionIndex function = InterrogateDatabase::get_ptr()->get_make_seq(make_seq).get_element_getter(); return interrogate_function_name(function); } +FunctionIndex +interrogate_make_seq_num_getter(MakeSeqIndex make_seq) { + // cerr << "interrogate_make_seq_num_getter(" << make_seq << ")\n"; + return InterrogateDatabase::get_ptr()->get_make_seq(make_seq).get_length_getter(); +} + +FunctionIndex +interrogate_make_seq_element_getter(MakeSeqIndex make_seq) { + // cerr << "interrogate_make_seq_element_getter(" << make_seq << ")\n"; + return InterrogateDatabase::get_ptr()->get_make_seq(make_seq).get_element_getter(); +} + int interrogate_number_of_global_types() { // cerr << "interrogate_number_of_global_types()\n"; diff --git a/dtool/src/interrogatedb/interrogate_interface.h b/dtool/src/interrogatedb/interrogate_interface.h index df17f09e75..fa44a00f2c 100644 --- a/dtool/src/interrogatedb/interrogate_interface.h +++ b/dtool/src/interrogatedb/interrogate_interface.h @@ -348,7 +348,8 @@ EXPCL_INTERROGATEDB const char *interrogate_make_seq_comment(ElementIndex elemen EXPCL_INTERROGATEDB const char *interrogate_make_seq_num_name(MakeSeqIndex make_seq); // The name of the real method that returns the nth element, e.g. "get_thing" EXPCL_INTERROGATEDB const char *interrogate_make_seq_element_name(MakeSeqIndex make_seq); - +EXPCL_INTERROGATEDB FunctionIndex interrogate_make_seq_num_getter(MakeSeqIndex make_seq); +EXPCL_INTERROGATEDB FunctionIndex interrogate_make_seq_element_getter(MakeSeqIndex make_seq); // Types From 89ee20bcf70ae748fb0e3ac8ac49b0e3f1e3e536 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Derzsi=20D=C3=A1niel?= Date: Thu, 21 Jul 2022 19:12:13 +0300 Subject: [PATCH 2/2] distributed: Import inspect only during DC file read Closes #1336 --- direct/src/distributed/ConnectionRepository.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/direct/src/distributed/ConnectionRepository.py b/direct/src/distributed/ConnectionRepository.py index d77802c7ff..bca270ca70 100644 --- a/direct/src/distributed/ConnectionRepository.py +++ b/direct/src/distributed/ConnectionRepository.py @@ -7,7 +7,6 @@ from direct.distributed.DoCollectionManager import DoCollectionManager from direct.showbase import GarbageReport from .PyDatagramIterator import PyDatagramIterator -import inspect import gc __all__ = ["ConnectionRepository", "GCTrigger"] @@ -309,6 +308,8 @@ class ConnectionRepository( # Now get the class definition for the classes named in the DC # file. + import inspect + for i in range(dcFile.getNumClasses()): dclass = dcFile.getClass(i) number = dclass.getNumber()