mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Fix errors caused by stdio.h dependent code.
This commit is contained in:
+11
-5
@@ -12,17 +12,23 @@ 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_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*);
|
||||
|
||||
int mrb_bdump_irep(mrb_state *mrb, int n, FILE *f,const char *initname);
|
||||
|
||||
int mrb_read_irep_file(mrb_state*,FILE*);
|
||||
#endif
|
||||
int mrb_read_irep(mrb_state*,const char*);
|
||||
|
||||
#ifdef ENABLE_STDIO
|
||||
mrb_value mrb_load_irep_file(mrb_state*,FILE*);
|
||||
#endif
|
||||
|
||||
/* dump type */
|
||||
#define DUMP_TYPE_CODE 0
|
||||
#define DUMP_TYPE_BIN 1
|
||||
|
||||
@@ -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 */
|
||||
|
||||
+22
-2
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user