Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bpo-45953: Statically allocate and initialize global bytes objects. #30096

Merged
merged 7 commits into from Jan 11, 2022

Conversation

Copy link
Member

@ericsnowcurrently ericsnowcurrently commented Dec 14, 2021

The empty bytes object (b'') and the 256 one-character bytes objects are allocated at runtime init. Here we statically allocate and initialize them.

https://bugs.python.org/issue45953

Copy link
Member

@markshannon markshannon left a comment

A few quibbles, otherwise looks good.

Include/internal/pycore_global_objects.h Outdated Show resolved Hide resolved
.ob_shash = -1, \
.ob_sval[0] = '\0', \
}
#define _PyBytes_CHAR_INIT(CH) \
Copy link
Member

@markshannon markshannon Jan 10, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a declaration, not initialization code. Maybe rename to _PyBytes_CHAR?

Copy link
Member Author

@ericsnowcurrently ericsnowcurrently Jan 10, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was sticking to the _INIT convention used elsewhere.

Objects/bytesobject.c Outdated Show resolved Hide resolved
Objects/bytesobject.c Outdated Show resolved Hide resolved
@ericsnowcurrently ericsnowcurrently merged commit cf496d6 into python:main Jan 11, 2022
11 checks passed
@ericsnowcurrently ericsnowcurrently deleted the global-objects-bytes branch Jan 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants