summaryrefslogtreecommitdiff
path: root/Lib
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2022-09-26 18:14:19 +0100
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2022-09-29 19:40:47 +0100
commit15b2ec53e33e375d0c8976571087331aa7012817 (patch)
tree54396209a09619ecf087446958326123e5e3ce1d /Lib
parent5fdb591a62c7427b8a503ff43d1943c38b41a19f (diff)
downloadswig-15b2ec53e33e375d0c8976571087331aa7012817.tar.gz
Runtime tables deterministic ordering (4)
Output C/C++ type strings (| separated) in swig_type_info tables in fixed order. The types are output in alphabetically sorted order, with an exception. The final type is a fully resolved type, but does not necessarily include default template parameters. This type is the one used by SWIG_TypePrettyName which is commonly used to display a type when the wrong type is passed in as a parameter. Previously the order was not very deterministic due to the use of internal hash tables which do not have an ordering guarantee.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/swigrun.swg6
1 files changed, 3 insertions, 3 deletions
diff --git a/Lib/swigrun.swg b/Lib/swigrun.swg
index 9ec98ccf2..f632c4cb6 100644
--- a/Lib/swigrun.swg
+++ b/Lib/swigrun.swg
@@ -358,9 +358,9 @@ SWIG_TypeName(const swig_type_info *ty) {
SWIGRUNTIME const char *
SWIG_TypePrettyName(const swig_type_info *type) {
/* The "str" field contains the equivalent pretty names of the
- type, separated by vertical-bar characters. We choose
- to print the last name, as it is often (?) the most
- specific. */
+ type, separated by vertical-bar characters. Choose the last
+ name. It should be the most specific; a fully resolved name
+ but not necessarily with default template parameters expanded. */
if (!type) return NULL;
if (type->str != NULL) {
const char *last_name = type->str;