summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--mrblib/Makefile2
-rw-r--r--src/hash.c4
-rw-r--r--src/parse.y14
-rw-r--r--test/Makefile2
4 files changed, 10 insertions, 12 deletions
diff --git a/mrblib/Makefile b/mrblib/Makefile
index 9a7e93596..c7226ddcd 100644
--- a/mrblib/Makefile
+++ b/mrblib/Makefile
@@ -63,7 +63,7 @@ $(MRBC) : ../src/opcode.h ../src/codegen.c ../src/parse.y
# merge mruby sources
$(RLIB) : $(MRBS)
- $(CAT) $? > $@
+ $(CAT) $(MRBS) > $@
# clean up
.PHONY : clean
diff --git a/src/hash.c b/src/hash.c
index 94be511c8..19d0507e3 100644
--- a/src/hash.c
+++ b/src/hash.c
@@ -1007,14 +1007,12 @@ mrb_hash_keys(mrb_state *mrb, mrb_value hash)
{
khash_t(ht) *h = RHASH_TBL(hash);
khiter_t k;
- mrb_value ary = mrb_ary_new(mrb);
+ mrb_value ary = mrb_ary_new_capa(mrb, kh_size(h));
if (!h) return ary;
for (k = kh_begin(h); k != kh_end(h); k++) {
if (kh_exist(h, k)) {
mrb_value v = kh_key(h,k);
- if ( !mrb_special_const_p(v) )
- v = mrb_obj_dup(mrb, v);
mrb_ary_push(mrb, ary, v);
}
}
diff --git a/src/parse.y b/src/parse.y
index 37a16c614..55c82c12d 100644
--- a/src/parse.y
+++ b/src/parse.y
@@ -1008,7 +1008,7 @@ top_stmts : none
}
| error top_stmt
{
- $$ = $2;
+ $$ = new_begin(p, 0);
}
;
@@ -3405,7 +3405,7 @@ parse_qstring(parser_state *p, int term)
switch (c) {
case '\n':
p->lineno++;
- p->column = 1;
+ p->column = 0;
continue;
case '\\':
@@ -3474,7 +3474,7 @@ parser_yylex(parser_state *p)
/* fall through */
case '\n':
p->lineno++;
- p->column = 1;
+ p->column = 0;
switch (p->lstate) {
case EXPR_BEG:
case EXPR_FNAME:
@@ -3569,8 +3569,8 @@ parser_yylex(parser_state *p)
if (p->column == 1) {
if (peeks(p, "begin\n")) {
skips(p, "\n=end\n");
+ goto retry;
}
- goto retry;
}
switch (p->lstate) {
case EXPR_FNAME: case EXPR_DOT:
@@ -4263,7 +4263,7 @@ parser_yylex(parser_state *p)
c = nextc(p);
if (c == '\n') {
p->lineno++;
- p->column = 1;
+ p->column = 0;
space_seen = 1;
goto retry; /* skip \\n */
}
@@ -4699,7 +4699,7 @@ mrb_parser_new(mrb_state *mrb)
p->capture_errors = 0;
p->lineno = 1;
- p->column = 1;
+ p->column = 0;
#if defined(PARSER_TEST) || defined(PARSER_DEBUG)
yydebug = 1;
#endif
@@ -4722,7 +4722,7 @@ mrb_parser_lineno(struct mrb_parser_state *p, int n)
if (n <= 0) {
return p->lineno;
}
- p->column = 1;
+ p->column = 0;
p->lineno = n;
return n;
}
diff --git a/test/Makefile b/test/Makefile
index b2df11486..170c1dac8 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -51,7 +51,7 @@ all : $(EXE)
./$(EXE)
# executable constructed using linker from object files
-$(EXE) : $(OBJS)
+$(EXE) : $(OBJS) $(LIBR)
$(LL) -o $@ $(CFLAGS) $(OBJS) $(LIBR) $(LIBS)
-include $(OBJS:.o=.d)