Skip to content

Commit ffbbdad

Browse files
[3.15] gh-157953: Update bundled Expat to 2.8.5 (GH-157957) (#157998)
1 parent 2dafe2a commit ffbbdad

21 files changed

Lines changed: 583 additions & 455 deletions

Makefile.pre.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -661,6 +661,7 @@ LIBEXPAT_HEADERS= \
661661
Modules/expat/expat_config.h \
662662
Modules/expat/expat_external.h \
663663
Modules/expat/fallthrough.h \
664+
Modules/expat/hash_table.h \
664665
Modules/expat/iasciitab.h \
665666
Modules/expat/internal.h \
666667
Modules/expat/latin1tab.h \
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Update bundled `libexpat <https://libexpat.github.io/>`_ to version 2.8.5.

Misc/sbom.spdx.json

Lines changed: 43 additions & 24 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Modules/expat/expat.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
Copyright (c) 2023 Sony Corporation / Snild Dolkow <snild@sony.com>
2121
Copyright (c) 2024 Taichi Haradaguchi <20001722@ymail.ne.jp>
2222
Copyright (c) 2025 Matthew Fernandez <matthew.fernandez@gmail.com>
23+
Copyright (c) 2026 Braian Plaku <braianplaku@gmail.com>
2324
Licensed under the MIT license:
2425
2526
Permission is hereby granted, free of charge, to any person obtaining
@@ -921,7 +922,9 @@ XML_SetParamEntityParsing(XML_Parser parser,
921922
Returns 1 if successful, 0 when called after parsing has started.
922923
Note: If parser == NULL, the function will do nothing and return 0.
923924
DEPRECATED since Expat 2.8.0.
925+
Please use XML_SetHashSalt16Bytes instead.
924926
*/
927+
XML_ATTR_DEPRECATED("please use XML_SetHashSalt16Bytes instead")
925928
XMLPARSEAPI(int)
926929
XML_SetHashSalt(XML_Parser parser, unsigned long hash_salt);
927930

@@ -1040,8 +1043,11 @@ enum XML_FeatureEnum {
10401043
XML_FEATURE_MIN_SIZE,
10411044
XML_FEATURE_SIZEOF_XML_CHAR,
10421045
XML_FEATURE_SIZEOF_XML_LCHAR,
1046+
/* Added in Expat 2.0.0. */
10431047
XML_FEATURE_NS,
1048+
/* Added in Expat 2.0.1. */
10441049
XML_FEATURE_LARGE_SIZE,
1050+
/* Added in Expat 2.1.0. */
10451051
XML_FEATURE_ATTR_INFO,
10461052
/* Added in Expat 2.4.0. */
10471053
XML_FEATURE_BILLION_LAUGHS_ATTACK_PROTECTION_MAXIMUM_AMPLIFICATION_DEFAULT,
@@ -1096,7 +1102,7 @@ XML_SetReparseDeferralEnabled(XML_Parser parser, XML_Bool enabled);
10961102
*/
10971103
# define XML_MAJOR_VERSION 2
10981104
# define XML_MINOR_VERSION 8
1099-
# define XML_MICRO_VERSION 4
1105+
# define XML_MICRO_VERSION 5
11001106

11011107
# ifdef __cplusplus
11021108
}

Modules/expat/expat_external.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
Copyright (c) 2017 Rhodri James <rhodri@wildebeest.org.uk>
1717
Copyright (c) 2018 Yury Gribov <tetra2005@gmail.com>
1818
Copyright (c) 2026 Matthew Fernandez <matthew.fernandez@gmail.com>
19+
Copyright (c) 2026 Braian Plaku <braianplaku@gmail.com>
1920
Licensed under the MIT license:
2021
2122
Permission is hereby granted, free of charge, to any person obtaining
@@ -128,6 +129,17 @@
128129
# define XML_ATTR_ALLOC_SIZE(x)
129130
# endif
130131

132+
/* Marks a function that Expat still provides but that callers should move off
133+
of. */
134+
# if defined(__clang__) || defined(__GNUC__)
135+
# define XML_ATTR_DEPRECATED(message) \
136+
__attribute__((__deprecated__(message)))
137+
# elif defined(_MSC_VER)
138+
# define XML_ATTR_DEPRECATED(message) __declspec(deprecated(message))
139+
# else
140+
# define XML_ATTR_DEPRECATED(message) // empty i.e. no deprecation
141+
# endif
142+
131143
# define XMLPARSEAPI(type) XMLIMPORT type XMLCALL
132144

133145
# ifdef __cplusplus

Modules/expat/hash_table.h

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
/* Hash table related internal API
2+
__ __ _
3+
___\ \/ /_ __ __ _| |_
4+
/ _ \\ /| '_ \ / _` | __|
5+
| __// \| |_) | (_| | |_
6+
\___/_/\_\ .__/ \__,_|\__|
7+
|_| XML parser
8+
9+
Copyright (c) 2026 Sebastian Pipping <sebastian@pipping.org>
10+
Licensed under the MIT license:
11+
12+
Permission is hereby granted, free of charge, to any person obtaining
13+
a copy of this software and associated documentation files (the
14+
"Software"), to deal in the Software without restriction, including
15+
without limitation the rights to use, copy, modify, merge, publish,
16+
distribute, sublicense, and/or sell copies of the Software, and to permit
17+
persons to whom the Software is furnished to do so, subject to the
18+
following conditions:
19+
20+
The above copyright notice and this permission notice shall be included
21+
in all copies or substantial portions of the Software.
22+
23+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
26+
NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27+
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
28+
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
29+
USE OR OTHER DEALINGS IN THE SOFTWARE.
30+
31+
SPDX-License-Identifier: MIT
32+
*/
33+
34+
#if ! defined(HASH_TABLE_H)
35+
# define HASH_TABLE_H 1
36+
37+
# include "expat.h" // for XML_Bool, XML_Parser
38+
# include "internal.h" // for XML_NONTESTING_STATIC
39+
40+
# include <stddef.h> // for size_t
41+
42+
typedef const XML_Char *KEY;
43+
44+
typedef struct {
45+
KEY name;
46+
} NAMED;
47+
48+
typedef struct {
49+
NAMED **v;
50+
unsigned char power;
51+
size_t size;
52+
size_t used;
53+
XML_Parser parser;
54+
} HASH_TABLE;
55+
56+
typedef struct {
57+
NAMED **p;
58+
NAMED **end;
59+
} HASH_TABLE_ITER;
60+
61+
XML_NONTESTING_STATIC NAMED *lookupWithLength(XML_Parser parser,
62+
HASH_TABLE *table, KEY name,
63+
size_t nameLen,
64+
size_t createSize);
65+
XML_NONTESTING_STATIC NAMED *lookup(XML_Parser parser, HASH_TABLE *table,
66+
KEY name, size_t createSize);
67+
68+
XML_NONTESTING_STATIC void hashTableInit(HASH_TABLE *table, XML_Parser parser);
69+
XML_NONTESTING_STATIC void hashTableClear(HASH_TABLE *table);
70+
XML_NONTESTING_STATIC void hashTableDestroy(HASH_TABLE *table);
71+
XML_NONTESTING_STATIC void hashTableIterInit(HASH_TABLE_ITER *iter,
72+
const HASH_TABLE *table);
73+
XML_NONTESTING_STATIC NAMED *hashTableIterNext(HASH_TABLE_ITER *iter);
74+
75+
XML_NONTESTING_STATIC XML_Bool keyeq(KEY s1, size_t s1len, KEY s2);
76+
XML_NONTESTING_STATIC size_t keylen(KEY s);
77+
78+
#endif // ! defined(HASH_TABLE_H)

0 commit comments

Comments
 (0)