Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit56eb25f

Browse files
committed
py/objstr: Make .partition()/.rpartition() methods configurable.
Default is disabled, enabled for unix port. Saves 600 bytes on x86.
1 parenta4aaf82 commit56eb25f

File tree

4 files changed

+14
-0
lines changed

4 files changed

+14
-0
lines changed

‎py/mpconfig.h‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -611,6 +611,11 @@ typedef double mp_float_t;
611611
#defineMICROPY_PY_BUILTINS_STR_CENTER (0)
612612
#endif
613613

614+
// Whether str.partition()/str.rpartition() method provided
615+
#ifndefMICROPY_PY_BUILTINS_STR_PARTITION
616+
#defineMICROPY_PY_BUILTINS_STR_PARTITION (0)
617+
#endif
618+
614619
// Whether str.splitlines() method provided
615620
#ifndefMICROPY_PY_BUILTINS_STR_SPLITLINES
616621
#defineMICROPY_PY_BUILTINS_STR_SPLITLINES (0)

‎py/objstr.c‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1683,6 +1683,7 @@ STATIC mp_obj_t str_count(size_t n_args, const mp_obj_t *args) {
16831683
returnMP_OBJ_NEW_SMALL_INT(num_occurrences);
16841684
}
16851685

1686+
#ifMICROPY_PY_BUILTINS_STR_PARTITION
16861687
STATICmp_obj_tstr_partitioner(mp_obj_tself_in,mp_obj_targ,mp_int_tdirection) {
16871688
assert(MP_OBJ_IS_STR_OR_BYTES(self_in));
16881689
mp_obj_type_t*self_type=mp_obj_get_type(self_in);
@@ -1732,6 +1733,7 @@ STATIC mp_obj_t str_partition(mp_obj_t self_in, mp_obj_t arg) {
17321733
STATICmp_obj_tstr_rpartition(mp_obj_tself_in,mp_obj_targ) {
17331734
returnstr_partitioner(self_in,arg,-1);
17341735
}
1736+
#endif
17351737

17361738
// Supposedly not too critical operations, so optimize for code size
17371739
STATICmp_obj_tstr_caseconv(unichar (*op)(unichar),mp_obj_tself_in) {
@@ -1875,8 +1877,10 @@ MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(str_rstrip_obj, 1, 2, str_rstrip);
18751877
MP_DEFINE_CONST_FUN_OBJ_KW(str_format_obj,1,mp_obj_str_format);
18761878
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(str_replace_obj,3,4,str_replace);
18771879
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(str_count_obj,2,4,str_count);
1880+
#ifMICROPY_PY_BUILTINS_STR_PARTITION
18781881
MP_DEFINE_CONST_FUN_OBJ_2(str_partition_obj,str_partition);
18791882
MP_DEFINE_CONST_FUN_OBJ_2(str_rpartition_obj,str_rpartition);
1883+
#endif
18801884
MP_DEFINE_CONST_FUN_OBJ_1(str_lower_obj,str_lower);
18811885
MP_DEFINE_CONST_FUN_OBJ_1(str_upper_obj,str_upper);
18821886
MP_DEFINE_CONST_FUN_OBJ_1(str_isspace_obj,str_isspace);
@@ -1915,8 +1919,10 @@ STATIC const mp_rom_map_elem_t str8_locals_dict_table[] = {
19151919
{MP_ROM_QSTR(MP_QSTR_format),MP_ROM_PTR(&str_format_obj) },
19161920
{MP_ROM_QSTR(MP_QSTR_replace),MP_ROM_PTR(&str_replace_obj) },
19171921
{MP_ROM_QSTR(MP_QSTR_count),MP_ROM_PTR(&str_count_obj) },
1922+
#ifMICROPY_PY_BUILTINS_STR_PARTITION
19181923
{MP_ROM_QSTR(MP_QSTR_partition),MP_ROM_PTR(&str_partition_obj) },
19191924
{MP_ROM_QSTR(MP_QSTR_rpartition),MP_ROM_PTR(&str_rpartition_obj) },
1925+
#endif
19201926
#ifMICROPY_PY_BUILTINS_STR_CENTER
19211927
{MP_ROM_QSTR(MP_QSTR_center),MP_ROM_PTR(&str_center_obj) },
19221928
#endif

‎py/objstrunicode.c‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,8 +246,10 @@ STATIC const mp_rom_map_elem_t struni_locals_dict_table[] = {
246246
{MP_ROM_QSTR(MP_QSTR_format),MP_ROM_PTR(&str_format_obj) },
247247
{MP_ROM_QSTR(MP_QSTR_replace),MP_ROM_PTR(&str_replace_obj) },
248248
{MP_ROM_QSTR(MP_QSTR_count),MP_ROM_PTR(&str_count_obj) },
249+
#ifMICROPY_PY_BUILTINS_STR_PARTITION
249250
{MP_ROM_QSTR(MP_QSTR_partition),MP_ROM_PTR(&str_partition_obj) },
250251
{MP_ROM_QSTR(MP_QSTR_rpartition),MP_ROM_PTR(&str_rpartition_obj) },
252+
#endif
251253
#ifMICROPY_PY_BUILTINS_STR_CENTER
252254
{MP_ROM_QSTR(MP_QSTR_center),MP_ROM_PTR(&str_center_obj) },
253255
#endif

‎unix/mpconfigport.h‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@
7373
#defineMICROPY_PY_DESCRIPTORS (1)
7474
#defineMICROPY_PY_BUILTINS_STR_UNICODE (1)
7575
#defineMICROPY_PY_BUILTINS_STR_CENTER (1)
76+
#defineMICROPY_PY_BUILTINS_STR_PARTITION (1)
7677
#defineMICROPY_PY_BUILTINS_STR_SPLITLINES (1)
7778
#defineMICROPY_PY_BUILTINS_MEMORYVIEW (1)
7879
#defineMICROPY_PY_BUILTINS_FROZENSET (1)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp