Skip to content

Commit ac0dbf9

Browse files
Add the new file (what a great idea!) and ignore a deprecation warning
1 parent c6d7a65 commit ac0dbf9

2 files changed

Lines changed: 81 additions & 0 deletions

File tree

‎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)

‎Modules/pyexpat.c‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2552,7 +2552,10 @@ pyexpat_exec(PyObject *mod)
25522552
capi->SetEncoding = XML_SetEncoding;
25532553
capi->DefaultUnknownEncodingHandler = PyUnknownEncodingHandler;
25542554
#if XML_COMBINED_VERSION >= 20100
2555+
_Py_COMP_DIAG_PUSH
2556+
_Py_COMP_DIAG_IGNORE_DEPR_DECLS
25552557
capi->SetHashSalt = XML_SetHashSalt;
2558+
_Py_COMP_DIAG_POP
25562559
#else
25572560
capi->SetHashSalt = NULL;
25582561
#endif

0 commit comments

Comments
 (0)