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

ericsnowcurrently
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

Choose a reason for hiding this comment

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

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

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

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
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.

5 participants