Skip to content

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

Merged
ericsnowcurrently merged 7 commits into
python:mainfrom
ericsnowcurrently:global-objects-bytes
Jan 11, 2022
Merged

bpo-45953: Statically allocate and initialize global bytes objects.#30096
ericsnowcurrently merged 7 commits into
python:mainfrom
ericsnowcurrently:global-objects-bytes

Conversation

@ericsnowcurrently

@ericsnowcurrentlyericsnowcurrently commented Dec 14, 2021

Copy link
Copy Markdown
Member

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

Comment threadInclude/internal/pycore_global_objects.h
Comment threadInclude/internal/pycore_global_objects.h Outdated

@markshannonmarkshannon left a comment

Copy link
Copy Markdown
Member

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.

Comment threadInclude/internal/pycore_global_objects.h Outdated
.ob_shash = -1, \
.ob_sval[0] = '\0', \
}
#define _PyBytes_CHAR_INIT(CH) \

Copy link
Copy Markdown
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
Copy Markdown
MemberAuthor

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.

Comment threadObjects/bytesobject.c Outdated
Comment threadObjects/bytesobject.c Outdated
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@ericsnowcurrently@gvanrossum@markshannon@the-knights-who-say-ni@bedevere-bot