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;