mirror of
https://github.com/holub/mame
synced 2025-10-06 09:00:04 +03:00
Fix off-by-one
This commit is contained in:
parent
215e9a8be9
commit
277bd7e759
@ -374,11 +374,6 @@ errout:
|
|||||||
|
|
||||||
int gl_compile_shader_file( GLhandleARB *shader, GLenum type, const char * shader_file, int verbose )
|
int gl_compile_shader_file( GLhandleARB *shader, GLenum type, const char * shader_file, int verbose )
|
||||||
{
|
{
|
||||||
int err = 0, i, c;
|
|
||||||
FILE * file = NULL;
|
|
||||||
int buffer_len = 8192;
|
|
||||||
GLcharARB *buffer=NULL;
|
|
||||||
|
|
||||||
if(shader==NULL || shader_file==NULL)
|
if(shader==NULL || shader_file==NULL)
|
||||||
{
|
{
|
||||||
if(shader==NULL)
|
if(shader==NULL)
|
||||||
@ -388,7 +383,7 @@ int gl_compile_shader_file( GLhandleARB *shader, GLenum type, const char * shade
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
file = fopen(shader_file, "r");
|
FILE *const file = fopen(shader_file, "r");
|
||||||
if(!file)
|
if(!file)
|
||||||
{
|
{
|
||||||
osd_printf_warning("cannot open shader_file: %s\n", shader_file);
|
osd_printf_warning("cannot open shader_file: %s\n", shader_file);
|
||||||
@ -397,23 +392,20 @@ int gl_compile_shader_file( GLhandleARB *shader, GLenum type, const char * shade
|
|||||||
|
|
||||||
// get the real file size
|
// get the real file size
|
||||||
fseek(file, 0, SEEK_END);
|
fseek(file, 0, SEEK_END);
|
||||||
buffer_len = (int)ftell(file);
|
int const buffer_len = (int)ftell(file);
|
||||||
fseek(file, 0, SEEK_SET);
|
fseek(file, 0, SEEK_SET);
|
||||||
|
|
||||||
buffer = (GLcharARB *) malloc(buffer_len);
|
GLcharARB *const buffer = (GLcharARB *)malloc(buffer_len + 1);
|
||||||
memset(buffer, 0, buffer_len);
|
memset(buffer, 0, buffer_len + 1);
|
||||||
|
|
||||||
/* Load Shader Sources */
|
/* Load Shader Sources */
|
||||||
i=0;
|
for( int i = 0, c = 0; i<buffer_len && EOF!=(c=fgetc(file)); i++ )
|
||||||
while( i<buffer_len-1 && EOF!=(c=fgetc(file)) )
|
buffer[i]=(char)c;
|
||||||
buffer[i++]=(char)c;
|
|
||||||
fclose(file);
|
fclose(file);
|
||||||
buffer[i]='\0';
|
|
||||||
|
|
||||||
err=gl_compile_shader_source(shader, type, buffer, verbose);
|
|
||||||
if(err) goto errout;
|
|
||||||
|
|
||||||
|
int const err=gl_compile_shader_source(shader, type, buffer, verbose);
|
||||||
free(buffer);
|
free(buffer);
|
||||||
|
if(err) goto errout;
|
||||||
|
|
||||||
if(verbose)
|
if(verbose)
|
||||||
osd_printf_warning("shader file: %s\n", shader_file);
|
osd_printf_warning("shader file: %s\n", shader_file);
|
||||||
@ -421,9 +413,8 @@ int gl_compile_shader_file( GLhandleARB *shader, GLenum type, const char * shade
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
errout:
|
errout:
|
||||||
free(buffer);
|
|
||||||
osd_printf_warning("failed to process shader_file: %s\n", shader_file);
|
osd_printf_warning("failed to process shader_file: %s\n", shader_file);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user