minor update

This commit is contained in:
funshine 2015-02-14 16:59:45 +08:00
parent 2c5c00a56a
commit 1798c6b78c
3 changed files with 7 additions and 21 deletions

View File

@ -652,8 +652,7 @@ LUALIB_API int luaL_loadfile (lua_State *L, const char *filename) {
typedef struct LoadFSF { typedef struct LoadFSF {
int extraline; int extraline;
int f; int f;
char *buff; char buff[LUAL_BUFFERSIZE];
int len;
} LoadFSF; } LoadFSF;
@ -666,7 +665,7 @@ static const char *getFSF (lua_State *L, void *ud, size_t *size) {
return "\n"; return "\n";
} }
if (fs_eof(lf->f)) return NULL; if (fs_eof(lf->f)) return NULL;
*size = fs_read(lf->f, lf->buff, (lf->len)); *size = fs_read(lf->f, lf->buff, sizeof(lf->buff));
return (*size > 0) ? lf->buff : NULL; return (*size > 0) ? lf->buff : NULL;
} }
@ -685,9 +684,6 @@ LUALIB_API int luaL_loadfsfile (lua_State *L, const char *filename) {
int c; int c;
int fnameindex = lua_gettop(L) + 1; /* index of filename on the stack */ int fnameindex = lua_gettop(L) + 1; /* index of filename on the stack */
lf.extraline = 0; lf.extraline = 0;
// lf.len = LUAL_BUFFERSIZE;
lf.len = 0;
lf.buff = NULL;
if (filename == NULL) { if (filename == NULL) {
return luaL_error(L, "filename is NULL"); return luaL_error(L, "filename is NULL");
} }
@ -696,10 +692,8 @@ LUALIB_API int luaL_loadfsfile (lua_State *L, const char *filename) {
lf.f = fs_open(filename, FS_RDONLY); lf.f = fs_open(filename, FS_RDONLY);
if (lf.f < FS_OPEN_OK) return errfsfile(L, "open", fnameindex); if (lf.f < FS_OPEN_OK) return errfsfile(L, "open", fnameindex);
} }
lf.len = fs_size(lf.f) + 32; // if(fs_size(lf.f)>LUAL_BUFFERSIZE)
lf.buff = c_zalloc(lf.len); // return luaL_error(L, "file is too big");
if(!lf.buff) return LUA_ERRMEM;
c = fs_getc(lf.f); c = fs_getc(lf.f);
if (c == '#') { /* Unix exec. file? */ if (c == '#') { /* Unix exec. file? */
lf.extraline = 1; lf.extraline = 1;
@ -709,13 +703,7 @@ LUALIB_API int luaL_loadfsfile (lua_State *L, const char *filename) {
if (c == LUA_SIGNATURE[0] && filename) { /* binary file? */ if (c == LUA_SIGNATURE[0] && filename) { /* binary file? */
fs_close(lf.f); fs_close(lf.f);
lf.f = fs_open(filename, FS_RDONLY); /* reopen in binary mode */ lf.f = fs_open(filename, FS_RDONLY); /* reopen in binary mode */
if (lf.f < FS_OPEN_OK){ if (lf.f < FS_OPEN_OK) return errfsfile(L, "reopen", fnameindex);
if(lf.buff)
c_free(lf.buff);
lf.buff = NULL;
lf.len = 0;
return errfsfile(L, "reopen", fnameindex);
}
/* skip eventual `#!...' */ /* skip eventual `#!...' */
while ((c = fs_getc(lf.f)) != EOF && c != LUA_SIGNATURE[0]) ; while ((c = fs_getc(lf.f)) != EOF && c != LUA_SIGNATURE[0]) ;
lf.extraline = 0; lf.extraline = 0;
@ -725,9 +713,6 @@ LUALIB_API int luaL_loadfsfile (lua_State *L, const char *filename) {
if (filename) fs_close(lf.f); /* close file (even in case of errors) */ if (filename) fs_close(lf.f); /* close file (even in case of errors) */
lua_remove(L, fnameindex); lua_remove(L, fnameindex);
if(lf.buff)
c_free(lf.buff);
lf.buff = NULL;
return status; return status;
} }

View File

@ -542,7 +542,7 @@ extern int readline4lua(const char *prompt, char *buffer, int length);
/* /*
@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system. @@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system.
*/ */
#define LUAL_BUFFERSIZE BUFSIZ #define LUAL_BUFFERSIZE ((BUFSIZ)*4)
/* }================================================================== */ /* }================================================================== */

View File

@ -466,5 +466,6 @@ int myspiffs_error( int fd );
void myspiffs_clearerr( int fd ); void myspiffs_clearerr( int fd );
int myspiffs_check( void ); int myspiffs_check( void );
int myspiffs_rename( const char *old, const char *newname ); int myspiffs_rename( const char *old, const char *newname );
size_t myspiffs_size( int fd );
#endif /* SPIFFS_H_ */ #endif /* SPIFFS_H_ */