arreglado bug askeroso!!!
This commit is contained in:
parent
f5932a64d8
commit
985e38755e
|
@ -1,3 +1,19 @@
|
||||||
|
29/10/2002
|
||||||
|
----------
|
||||||
|
* Bug arreglado: el programa se bloqueaba al llegar a cierta cantidad de
|
||||||
|
procesos. El problema estaba en que los procesos no desechaban los parámetros
|
||||||
|
de la pila después de leerlos. He cuidado que funcione bien tanto con
|
||||||
|
optimización como sin ella :D (Er_Makina)
|
||||||
|
* Para evitar cosas como esta (desbordamientos de pila) he puesto un "PANIC!"
|
||||||
|
en modo _DEBUG cuando se termina de ejecutar un frame y quedan cosas en la
|
||||||
|
pila. (Er_Makina)
|
||||||
|
* Bug arreglado: los procesos no devolvían el id. La causa del bug era la misma
|
||||||
|
que el de más arriba :) (Er_Makina)
|
||||||
|
* Ahora se dibujan todos los blits con la Z correcta. He quitado el sistema
|
||||||
|
que había antes (orden[]) y lo he reemplazado por un qsort justo antes de
|
||||||
|
dibujarlo todo, además supongo que es más rápido que ir insertando cosas
|
||||||
|
cada vez que se llamaba a Dibuja(). (Er_Makina)
|
||||||
|
|
||||||
28/10/2002
|
28/10/2002
|
||||||
----------
|
----------
|
||||||
* Añadida la variable SIZE.
|
* Añadida la variable SIZE.
|
||||||
|
|
|
@ -4,8 +4,7 @@
|
||||||
Version="7.00"
|
Version="7.00"
|
||||||
Name="b2f"
|
Name="b2f"
|
||||||
ProjectGUID="{892F2A1D-847C-45C1-B7D9-3F421D749FA5}"
|
ProjectGUID="{892F2A1D-847C-45C1-B7D9-3F421D749FA5}"
|
||||||
SccProjectName=""
|
>
|
||||||
SccLocalPath="">
|
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
Name="Win32"/>
|
Name="Win32"/>
|
||||||
|
|
Binary file not shown.
|
@ -169,6 +169,7 @@ int proceso( int num, int padre )
|
||||||
int no_devuelve = 0 ;
|
int no_devuelve = 0 ;
|
||||||
int (*externa)(struct _fun_params*);
|
int (*externa)(struct _fun_params*);
|
||||||
int temp ;
|
int temp ;
|
||||||
|
int cpas=0;
|
||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
int actual_lin;
|
int actual_lin;
|
||||||
#endif
|
#endif
|
||||||
|
@ -324,8 +325,12 @@ int proceso( int num, int padre )
|
||||||
reserved("param_offset",procs_s[num_proc].id)=sp-reserved("parameters",procs_s[num_proc].id)+1;
|
reserved("param_offset",procs_s[num_proc].id)=sp-reserved("parameters",procs_s[num_proc].id)+1;
|
||||||
/**/procs_s[num_proc].num_params = mem[ imem-1 ] ;
|
/**/procs_s[num_proc].num_params = mem[ imem-1 ] ;
|
||||||
break;
|
break;
|
||||||
case lcpa://31 POR HACER?
|
case lcpa://31
|
||||||
mem[pila[sp--]]=pila[reserved("param_offset",procs_s[num_proc].id)++];
|
mem[pila[sp]]=pila[reserved("param_offset",procs_s[num_proc].id)++];
|
||||||
|
sp--;
|
||||||
|
cpas++;
|
||||||
|
if(cpas==reserved("parameters",procs_s[num_proc].id))
|
||||||
|
sp-=cpas;
|
||||||
break;
|
break;
|
||||||
case ltyp://32
|
case ltyp://32
|
||||||
if ( procs_s[num_proc].tipo != 0 )
|
if ( procs_s[num_proc].tipo != 0 )
|
||||||
|
@ -498,6 +503,7 @@ int proceso( int num, int padre )
|
||||||
break;
|
break;
|
||||||
case lcaraidcpa://68
|
case lcaraidcpa://68
|
||||||
mem[mem[imem++]+procs_s[num_proc].id]=pila[reserved("param_offset",procs_s[num_proc].id)++];
|
mem[mem[imem++]+procs_s[num_proc].id]=pila[reserved("param_offset",procs_s[num_proc].id)++];
|
||||||
|
sp--;
|
||||||
break;
|
break;
|
||||||
case laddptr://69
|
case laddptr://69
|
||||||
pila[sp-1]=mem[pila[sp-1]+pila[sp]];
|
pila[sp-1]=mem[pila[sp-1]+pila[sp]];
|
||||||
|
|
|
@ -272,7 +272,7 @@ char* translate_runtime_error(int num)
|
||||||
/* 114 */ "Non è stato possibile caricare la fonte, archivio non trovato.",
|
/* 114 */ "Non è stato possibile caricare la fonte, archivio non trovato.",
|
||||||
/* 115 */ "Si è tentato di caricare un archivio di fonte non valido.",
|
/* 115 */ "Si è tentato di caricare un archivio di fonte non valido.",
|
||||||
/* 116 */ "Codice identificatore fonte di lettere non valido.",
|
/* 116 */ "Codice identificatore fonte di lettere non valido.",
|
||||||
/* 117 */ "Codice di centrato di testo non valido.",
|
/* 117 */ "Codice di allineamento testo non valido.",
|
||||||
/* 118 */ "Hai troppi testi attivi nel programma.",
|
/* 118 */ "Hai troppi testi attivi nel programma.",
|
||||||
/* 119 */ "Identificatore di testo non valido.",
|
/* 119 */ "Identificatore di testo non valido.",
|
||||||
/* 120 */ "Regione di schermo definita incorrettamente.",
|
/* 120 */ "Regione di schermo definita incorrettamente.",
|
||||||
|
|
|
@ -291,12 +291,12 @@ int main(int argc, char* argv[])
|
||||||
|
|
||||||
if ( screen == NULL )
|
if ( screen == NULL )
|
||||||
k_error(K_ERR_SDL_SET_VIDEO_MODE);
|
k_error(K_ERR_SDL_SET_VIDEO_MODE);
|
||||||
*/
|
*/
|
||||||
|
//assert(0);
|
||||||
ini_interprete();
|
ini_interprete();
|
||||||
/*if ( !ini_interprete() )
|
/*if ( !ini_interprete() )
|
||||||
k_error(K_ERR_INI_INTERPRETE) ;*/
|
k_error(K_ERR_INI_INTERPRETE) ;*/
|
||||||
|
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
char noevent;
|
char noevent;
|
||||||
/*
|
/*
|
||||||
|
@ -338,6 +338,10 @@ int main(int argc, char* argv[])
|
||||||
stub_quit(0);
|
stub_quit(0);
|
||||||
|
|
||||||
interprete();
|
interprete();
|
||||||
|
|
||||||
|
#ifdef _DEBUG
|
||||||
|
if(sp!=0) printf("PANIC! Quedan restos en la pila!! (sp=%d)\n",sp);
|
||||||
|
#endif
|
||||||
/*if (!interprete())
|
/*if (!interprete())
|
||||||
k_error(K_ERR_INTERPRETE);*/
|
k_error(K_ERR_INTERPRETE);*/
|
||||||
|
|
||||||
|
|
Binary file not shown.
Loading…
Reference in a new issue