Commit 2bfb8882 authored by Masaki Muranaka's avatar Masaki Muranaka

Fix errors caused by stdio.h dependent code.

parent 58b9e767
......@@ -12,16 +12,22 @@ extern "C" {
#endif
#include "mruby.h"
#ifdef ENABLE_STDIO
#include <stdio.h>
#endif
#include <stdint.h>
#ifdef ENABLE_STDIO
int mrb_dump_irep(mrb_state*,int,FILE*);
int mrb_read_irep(mrb_state*,const char*);
int mrb_bdump_irep(mrb_state *mrb, int n, FILE *f,const char *initname);
int mrb_read_irep_file(mrb_state*,FILE*);
/* mrb_value mrb_load_irep(mrb_state*,const char*); */ /* declared in <irep.h> */
mrb_value mrb_load_irep_file(mrb_state*,FILE*);
#endif
int mrb_read_irep(mrb_state*,const char*);
int mrb_bdump_irep(mrb_state *mrb, int n, FILE *f,const char *initname);
#ifdef ENABLE_STDIO
mrb_value mrb_load_irep_file(mrb_state*,FILE*);
#endif
/* dump type */
#define DUMP_TYPE_CODE 0
......
......@@ -50,6 +50,8 @@ enum {
DUMP_SECTION_NUM,
};
#ifdef ENABLE_STDIO
uint16_t calc_crc_16_ccitt(unsigned char*,int);
static inline int uint8_dump(uint8_t,char*,int);
static inline int uint16_dump(uint16_t,char*,int);
......@@ -742,3 +744,5 @@ mrb_bdump_irep(mrb_state *mrb, int n, FILE *f,const char *initname)
return rc;
}
#endif /* ENABLE_STDIO */
......@@ -11,6 +11,7 @@
#include "mruby/proc.h"
#include "mruby/irep.h"
#ifdef ENABLE_STDIO
typedef struct _RiteFILE
{
FILE* fp;
......@@ -18,6 +19,7 @@ typedef struct _RiteFILE
int cnt;
int readlen;
} RiteFILE;
#endif
const char hex2bin[256] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, //00-0f
......@@ -38,15 +40,18 @@ static uint16_t hex_to_uint16(unsigned char*);
static uint32_t hex_to_uint32(unsigned char*);
static char* hex_to_str(char*,char*,uint16_t*);
uint16_t calc_crc_16_ccitt(unsigned char*,int);
#ifdef ENABLE_STDIO
static unsigned char rite_fgetcSub(RiteFILE*);
static unsigned char rite_fgetc(RiteFILE*,int);
static unsigned char* rite_fgets(RiteFILE*,unsigned char*,int,int);
static int load_rite_header(FILE*,rite_binary_header*,unsigned char*);
static int load_rite_irep_record(mrb_state*, RiteFILE*,unsigned char*,uint32_t*);
#endif
static int read_rite_header(mrb_state*,unsigned char*,rite_binary_header*);
static int read_rite_irep_record(mrb_state*,unsigned char*,uint32_t*);
#ifdef ENABLE_STDIO
static unsigned char
rite_fgetcSub(RiteFILE* rfp)
{
......@@ -65,7 +70,9 @@ rite_fgetcSub(RiteFILE* rfp)
}
return rfp->buf[(rfp->cnt)++];
}
#endif /* ENABLE_STDIO */
#ifdef ENABLE_STDIO
static unsigned char
rite_fgetc(RiteFILE* rfp, int ignorecomment)
{
......@@ -87,7 +94,9 @@ rite_fgetc(RiteFILE* rfp, int ignorecomment)
}
}
}
#endif /* ENABLE_STDIO */
#ifdef ENABLE_STDIO
static unsigned char*
rite_fgets(RiteFILE* rfp, unsigned char* dst, int len, int ignorecomment)
{
......@@ -100,7 +109,9 @@ rite_fgets(RiteFILE* rfp, unsigned char* dst, int len, int ignorecomment)
}
return dst;
}
#endif /* ENABLE_STDIO */
#ifdef ENABLE_STDIO
static int
load_rite_header(FILE* fp, rite_binary_header* bin_header, unsigned char* hcrc)
{
......@@ -128,7 +139,9 @@ load_rite_header(FILE* fp, rite_binary_header* bin_header, unsigned char* hcrc)
return MRB_DUMP_OK;
}
#endif /* ENABLE_STDIO */
#ifdef ENABLE_STDIO
static int
load_rite_irep_record(mrb_state *mrb, RiteFILE* rfp, unsigned char* dst, uint32_t* len)
{
......@@ -152,8 +165,10 @@ load_rite_irep_record(mrb_state *mrb, RiteFILE* rfp, unsigned char* dst, uint32_
//IREP HEADER BLOCK
*dst = rite_fgetc(rfp, TRUE); //record identifier
if (*dst != RITE_IREP_IDENFIFIER)
return MRB_DUMP_INVALID_IREP;
if (*dst != RITE_IREP_IDENFIFIER) {
result = MRB_DUMP_INVALID_IREP;
goto error_exit;
}
dst += sizeof(unsigned char);
*dst = rite_fgetc(rfp, TRUE); //class or module
dst += sizeof(unsigned char);
......@@ -247,7 +262,9 @@ error_exit:
return result;
}
#endif /* ENABLE_STDIO */
#ifdef ENABLE_STDIO
int
mrb_read_irep_file(mrb_state *mrb, FILE* fp)
{
......@@ -306,6 +323,7 @@ error_exit:
return ret;
}
#endif /* ENABLE_STDIO */
static int
read_rite_header(mrb_state *mrb, unsigned char *bin, rite_binary_header* bin_header)
......@@ -668,6 +686,7 @@ irep_error(mrb_state *mrb, int n)
mrb->exc = (struct RObject*)mrb_object(mrb_exc_new(mrb, E_SCRIPT_ERROR, msg, sizeof(msg) - 1));
}
#ifdef ENABLE_STDIO
mrb_value
mrb_load_irep_file(mrb_state *mrb, FILE* fp)
{
......@@ -679,6 +698,7 @@ mrb_load_irep_file(mrb_state *mrb, FILE* fp)
}
return mrb_run(mrb, mrb_proc_new(mrb, mrb->irep[n]), mrb_top_self(mrb));
}
#endif
mrb_value
mrb_load_irep(mrb_state *mrb, const char *bin)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment