py/{modbuiltins,repl}: Start qstr probing from after empty qstr.
The list of qstrs starts with MP_QSTR_NULL followed by MP_QSTR_, and these should never appear in dir() or REPL tab completion, so skip them.
This commit is contained in:
parent
c1115d931f
commit
eb88803ac8
@ -186,7 +186,7 @@ STATIC mp_obj_t mp_builtin_dir(size_t n_args, const mp_obj_t *args) {
|
|||||||
// Make a list of names in the given object
|
// Make a list of names in the given object
|
||||||
// Implemented by probing all possible qstrs with mp_load_method_maybe
|
// Implemented by probing all possible qstrs with mp_load_method_maybe
|
||||||
size_t nqstr = QSTR_TOTAL();
|
size_t nqstr = QSTR_TOTAL();
|
||||||
for (size_t i = 1; i < nqstr; ++i) {
|
for (size_t i = MP_QSTR_ + 1; i < nqstr; ++i) {
|
||||||
mp_obj_t dest[2];
|
mp_obj_t dest[2];
|
||||||
mp_load_method_maybe(args[0], i, dest);
|
mp_load_method_maybe(args[0], i, dest);
|
||||||
if (dest[0] != MP_OBJ_NULL) {
|
if (dest[0] != MP_OBJ_NULL) {
|
||||||
|
@ -176,7 +176,7 @@ size_t mp_repl_autocomplete(const char *str, size_t len, const mp_print_t *print
|
|||||||
const char *match_str = NULL;
|
const char *match_str = NULL;
|
||||||
size_t match_len = 0;
|
size_t match_len = 0;
|
||||||
qstr q_first = 0, q_last;
|
qstr q_first = 0, q_last;
|
||||||
for (qstr q = 1; q < nqstr; ++q) {
|
for (qstr q = MP_QSTR_ + 1; q < nqstr; ++q) {
|
||||||
size_t d_len;
|
size_t d_len;
|
||||||
const char *d_str = (const char*)qstr_data(q, &d_len);
|
const char *d_str = (const char*)qstr_data(q, &d_len);
|
||||||
if (s_len <= d_len && strncmp(s_start, d_str, s_len) == 0) {
|
if (s_len <= d_len && strncmp(s_start, d_str, s_len) == 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user