gh-117549: Don't use designated initializers in headers (#118580)

The designated initializer syntax in static inline functions in pycore_backoff.h
causes problems for C++ or MSVC users who aren't yet using C++20.
While internal, pycore_backoff.h is included (indirectly, via pycore_code.h)
by some key 3rd party software that does so for speed.
This commit is contained in:
Guido van Rossum 2024-05-05 12:28:55 -07:00 committed by GitHub
parent 44f67916da
commit 40cc809902
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 12 additions and 2 deletions

View File

@ -44,13 +44,18 @@ make_backoff_counter(uint16_t value, uint16_t backoff)
{
assert(backoff <= 15);
assert(value <= 0xFFF);
return (_Py_BackoffCounter){.backoff = backoff, .value = value};
_Py_BackoffCounter result;
result.value = value;
result.backoff = backoff;
return result;
}
static inline _Py_BackoffCounter
forge_backoff_counter(uint16_t counter)
{
return (_Py_BackoffCounter){.as_counter = counter};
_Py_BackoffCounter result;
result.as_counter = counter;
return result;
}
static inline _Py_BackoffCounter

View File

@ -0,0 +1,5 @@
Don't use designated initializer syntax in inline functions in internal
headers. They cause problems for C++ or MSVC users who aren't yet using the
latest C++ standard (C++20). While internal, pycore_backoff.h, is included
(indirectly, via pycore_code.h) by some key 3rd party software that does so
for speed.