Make lexer fail gracefully when memory can't be allocated.
diff --git a/py/lexerstr.c b/py/lexerstr.c
index a919dc7..3a68441 100644
--- a/py/lexerstr.c
+++ b/py/lexerstr.c
@@ -52,7 +52,10 @@
}
mp_lexer_t *mp_lexer_new_from_str_len(qstr src_name, const char *str, mp_uint_t len, mp_uint_t free_len) {
- mp_lexer_str_buf_t *sb = m_new_obj(mp_lexer_str_buf_t);
+ mp_lexer_str_buf_t *sb = m_new_maybe(mp_lexer_str_buf_t, 1);
+ if (sb == NULL) {
+ return NULL;
+ }
sb->free_len = free_len;
sb->src_beg = str;
sb->src_cur = str;