summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2016-07-13 03:22:15 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2016-07-13 03:22:15 +0900
commitd4d807b774de0e776d2749acbcb22a1b38f1c50b (patch)
treee0b6c032d7e1584193f0d9b4f0a65515501d15ff /include
parent2e74a931121be3c1dbb030338527d301fec4d33f (diff)
downloadmruby-d4d807b774de0e776d2749acbcb22a1b38f1c50b.tar.gz
mruby-d4d807b774de0e776d2749acbcb22a1b38f1c50b.zip
relax string length limitation to 64KB; fix #2725
Diffstat (limited to 'include')
-rw-r--r--include/mruby/compile.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/include/mruby/compile.h b/include/mruby/compile.h
index 633eb1b74..3ccaf9f6a 100644
--- a/include/mruby/compile.h
+++ b/include/mruby/compile.h
@@ -102,7 +102,8 @@ struct mrb_parser_heredoc_info {
mrb_ast_node *doc;
};
-#define MRB_PARSER_BUF_SIZE 1024
+#define MRB_PARSER_TOKBUF_MAX 65536
+#define MRB_PARSER_TOKBUF_SIZE 256
/* parser structure */
struct mrb_parser_state {
@@ -130,8 +131,10 @@ struct mrb_parser_state {
mrb_ast_node *locals;
mrb_ast_node *pb;
- char buf[MRB_PARSER_BUF_SIZE];
- int bidx;
+ char *tokbuf;
+ char buf[MRB_PARSER_TOKBUF_SIZE];
+ int tidx;
+ int tsiz;
mrb_ast_node *all_heredocs; /* list of mrb_parser_heredoc_info* */
mrb_ast_node *heredocs_from_nextline;