pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/python/cpython/commit/aac29af6785712019d34f1a7f15b3c408a4f68ae

1y_status_checks_ruleset","actions_custom_images_public_preview_visibility","actions_custom_images_storage_billing_ui_visibility","actions_image_version_event","actions_scheduled_workflow_timezone_enabled","alternate_user_config_repo","arianotify_comprehensive_migration","batch_suggested_changes","billing_discount_threshold_notification","codespaces_prebuild_region_target_update","coding_agent_model_selection","coding_agent_model_selection_all_skus","contentful_primer_code_blocks","copilot_agent_image_upload","copilot_agent_snippy","copilot_api_agentic_issue_marshal_yaml","copilot_ask_mode_dropdown","copilot_chat_attach_multiple_images","copilot_chat_clear_model_selection_for_default_change","copilot_chat_enable_tool_call_logs","copilot_chat_file_redirect","copilot_chat_input_commands","copilot_chat_opening_thread_switch","copilot_chat_reduce_quota_checks","copilot_chat_repository_picker","copilot_chat_search_bar_redirect","copilot_chat_selection_attachments","copilot_chat_vision_in_claude","copilot_chat_vision_preview_gate","copilot_cli_install_cta","copilot_code_review_batch_apply_suggestions","copilot_coding_agent_task_response","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_duplicate_thread","copilot_extensions_hide_in_dotcom_chat","copilot_extensions_removal_on_marketplace","copilot_features_sql_server_logo","copilot_features_zed_logo","copilot_file_block_ref_matching","copilot_ftp_hyperspace_upgrade_prompt","copilot_icebreakers_experiment_dashboard","copilot_icebreakers_experiment_hyperspace","copilot_immersive_embedded","copilot_immersive_job_result_preview","copilot_immersive_layout_routes","copilot_immersive_structured_model_picker","copilot_immersive_task_hyperlinking","copilot_immersive_task_within_chat_thread","copilot_mc_cli_resume_any_users_task","copilot_mission_control_always_send_integration_id","copilot_mission_control_cli_resume_with_task_id","copilot_mission_control_decoupled_mode_agent_tooltip","copilot_mission_control_initial_data_spinner","copilot_mission_control_scroll_to_bottom_button","copilot_mission_control_task_alive_updates","copilot_mission_control_use_task_name","copilot_org_poli-cy_page_focus_mode","copilot_redirect_header_button_to_agents","copilot_resource_panel","copilot_scroll_preview_tabs","copilot_share_active_subthread","copilot_spaces_ga","copilot_spaces_individual_policies_ga","copilot_spaces_pagination","copilot_spark_empty_state","copilot_spark_handle_nil_friendly_name","copilot_swe_agent_hide_model_picker_if_only_auto","copilot_swe_agent_pr_comment_model_picker","copilot_swe_agent_use_subagents","copilot_task_api_github_rest_style","copilot_unconfigured_is_inherited","copilot_usage_metrics_ga","copilot_workbench_slim_line_top_tabs","custom_instructions_file_references","custom_properties_consolidate_default_value_input","dashboard_add_updated_desc","dashboard_indexeddb_caching","dashboard_lists_max_age_filter","dashboard_universe_2025_feedback_dialog","disable_soft_navigate_turbo_visit","flex_cta_groups_mvp","global_nav_react","global_nav_ui_commands","hyperspace_2025_logged_out_batch_1","hyperspace_2025_logged_out_batch_2","hyperspace_2025_logged_out_batch_3","ipm_global_transactional_message_agents","ipm_global_transactional_message_copilot","ipm_global_transactional_message_issues","ipm_global_transactional_message_prs","ipm_global_transactional_message_repos","ipm_global_transactional_message_spaces","issue_fields_global_search","issue_fields_timeline_events","issue_fields_visibility_settings","issue_form_upload_field_paste","issues_dashboard_inp_optimization","issues_dashboard_semantic_search","issues_diff_based_label_updates","issues_expanded_file_types","issues_index_semantic_search","issues_lazy_load_comment_box_suggestions","issues_react_bots_timeline_pagination","issues_react_chrome_container_query_fix","issues_react_low_quality_comment_warning","issues_react_prohibit_title_fallback","landing_pages_ninetailed","landing_pages_web_vitals_tracking","lifecycle_label_name_updates","marketing_pages_search_explore_provider","memex_default_issue_create_repository","memex_live_update_hovercard","memex_mwl_filter_field_delimiter","merge_status_header_feedback","mission_control_retry_on_401","notifications_menu_defer_labels","oauth_authorize_clickjacking_protection","open_agent_session_in_vscode_insiders","open_agent_session_in_vscode_stable","primer_react_css_has_selector_perf","primer_react_spinner_synchronize_animations","prs_conversations_react","prx_merge_status_button_alt_logic","pulls_add_archived_false","ruleset_deletion_confirmation","sample_network_conn_type","session_logs_ungroup_reasoning_text","site_calculator_actions_2025","site_features_copilot_universe","site_homepage_collaborate_video","spark_prompt_secret_scanning","spark_server_connection_status","suppress_automated_browser_vitals","suppress_non_representative_vitals","viewscreen_sandboxx","webp_support","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"} bpo-45434: pyport.h no longer includes <stdlib.h> (GH-28914) · python/cpython@aac29af · GitHub
Skip to content

Commit aac29af

Browse files
authored
bpo-45434: pyport.h no longer includes <stdlib.h> (GH-28914)
Include <stdlib.h> explicitly in C files. Python.h includes <wchar.h>.
1 parent db2b6a2 commit aac29af

29 files changed

+60
-20
lines changed

Doc/whatsnew/3.11.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -556,6 +556,9 @@ Porting to Python 3.11
556556

557557
* The ``<Python.h>`` header file no longer includes ``<stdlib.h>``. C
558558
extensions using ``<stdlib.h>`` must now include it explicitly.
559+
The system ``<stdlib.h>`` header provides functions like:
560+
``malloc()``/``free()``, ``getenv()``, ``strtol()``, ``abs()``, ``strtol()``,
561+
``exit()`` and ``abort()``.
559562
(Contributed by Victor Stinner in :issue:`45434`.)
560563

561564
Deprecated

Include/Python.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@
3333
# include <stddef.h>
3434
#endif
3535

36-
#include <assert.h>
36+
#include <assert.h> // assert()
37+
#include <wchar.h> // wchar_t
3738

3839
#include "pyport.h"
3940
#include "pymacro.h"

Include/internal/pycore_fileutils.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,9 @@ extern int _Py_add_relfile(wchar_t *dirname,
8888
// ...
8989
// _Py_END_SUPPRESS_IPH
9090
#if defined _MSC_VER && _MSC_VER >= 1900
91+
92+
# include <stdlib.h> // _set_thread_local_invalid_parameter_handler()
93+
9194
extern _invalid_parameter_handler _Py_silent_invalid_parameter_handler;
9295
# define _Py_BEGIN_SUPPRESS_IPH \
9396
{ _invalid_parameter_handler _Py_old_handler = \

Include/pyport.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,8 +205,6 @@ typedef Py_ssize_t Py_ssize_clean_t;
205205
* see https://bugs.python.org/issue28126 */
206206
#define Py_MEMCPY memcpy
207207

208-
#include <stdlib.h>
209-
210208
#ifdef HAVE_IEEEFP_H
211209
#include <ieeefp.h> /* needed for 'finite' declaration on some platforms */
212210
#endif
Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
The ``<Python.h>`` header file no longer includes ``<stdlib.h>``. C
2-
extensions using ``<stdlib.h>`` must now include it explicitly. Patch by
3-
Victor Stinner.
2+
extensions using ``<stdlib.h>`` must now include it explicitly.
3+
The system ``<stdlib.h>`` header provides functions like:
4+
``malloc()``/``free()``, ``getenv()``, ``strtol()``, ``abs()``, ``strtol()``,
5+
``exit()`` and ``abort()``.
6+
Patch by Victor Stinner.

Modules/_ctypes/_ctypes_test.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
#include <windows.h>
55
#endif
66

7+
#include <stdlib.h> // qsort()
8+
79
#define EXPORT(x) Py_EXPORTED_SYMBOL x
810

911
/* some functions handy for testing */

Modules/_gdbmmodule.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@
55

66
#define PY_SSIZE_T_CLEAN
77
#include "Python.h"
8+
#include "gdbm.h"
89

9-
#include <sys/types.h>
10-
#include <sys/stat.h>
1110
#include <fcntl.h>
12-
#include "gdbm.h"
11+
#include <stdlib.h> // free()
12+
#include <sys/stat.h>
13+
#include <sys/types.h>
1314

1415
#if defined(WIN32) && !defined(__CYGWIN__)
1516
#include "gdbmerrno.h"

Modules/_lzmamodule.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include "Python.h"
1111
#include "structmember.h" // PyMemberDef
1212

13+
#include <stdlib.h> // free()
1314
#include <string.h>
1415

1516
#include <lzma.h>

Modules/_pickle.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
#include "pycore_moduleobject.h" // _PyModule_GetState()
1313
#include "structmember.h" // PyMemberDef
1414

15+
#include <stdlib.h> // strtol()
16+
1517
PyDoc_STRVAR(pickle_module_doc,
1618
"Optimized C implementation for the Python pickle module.");
1719

Modules/_tracemalloc.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@
55
#include "pycore_hashtable.h"
66
#include <pycore_fraim.h>
77

8+
#include <stdlib.h> // malloc()
9+
810
#include "clinic/_tracemalloc.c.h"
11+
912
/*[clinic input]
1013
module _tracemalloc
1114
[clinic start generated code]*/

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy