コード例 #1
0
ファイル: ParamVector.cs プロジェクト: Erikhht/tuassembler
 public override void LiberarMemoria( EscritorC escritor )
 {
     escritor.WriteLine( "salidaFree2 = free2( " + Definicion.Nombre + " );" );
     escritor.If( "salidaFree2 == escrituraFueraDelBuffer" );
     escritor.PrintfEscrituraFueraDelBuffer( Definicion.Nombre );
     escritor.WriteLine( "cantErrores++;" );
     escritor.FinIf();
     escritor.If( "salidaFree2 == liberarPosMemNoValida" );
     escritor.PrintfCambioDeDireccionDelPuntero( Definicion.Nombre );
     escritor.WriteLine( "cantErrores++;" );
     escritor.FinIf();
     escritor.If( "salidaFree2 == dosFreeDelMismoBuffer" );
     escritor.PrintfDosFreeAlMismoParam( Definicion.Nombre );
     escritor.WriteLine( "cantErrores++;" );
     escritor.FinIf();
 }
コード例 #2
0
ファイル: ParamMatriz.cs プロジェクト: Erikhht/tuassembler
        public override void LiberarMemoria( EscritorC escritor )
        {
            string pedido;
            string varFila = Definicion.Nombre + "Fila";
            //Libera cada una de las filas
            escritor.For( varFila + " = 0", varFila + " < " + cantFilas, varFila + "++" );
            escritor.WriteLine( "salidaFree2 = free2( " + Definicion.Nombre + "[" + varFila + "] );" );
            escritor.If( "salidaFree2 == escrituraFueraDelBuffer" );
            escritor.PrintfEscrituraFueraDelBufferEnFilaDeMatriz( Definicion.Nombre, varFila );
            escritor.WriteLine( "cantErrores++;" );
            escritor.FinIf();
            escritor.If( "salidaFree2 == liberarPosMemNoValida" );
            escritor.PrintfCambioDeDireccionDelPunteroEnFilaDeMatriz( Definicion.Nombre, varFila );
            escritor.WriteLine( "cantErrores++;" );
            escritor.FinIf();
            escritor.If( "salidaFree2 == dosFreeDelMismoBuffer" );
            escritor.PrintfDosFreeAlMismoParamEnFilaDeMatriz( Definicion.Nombre, varFila );
            escritor.WriteLine( "cantErrores++;" );
            escritor.FinIf();

            escritor.FinFor();

            //Libera el arreglo de punteros
            escritor.WriteLine( "salidaFree2 = free2( " + Definicion.Nombre + " );" );
            escritor.If( "salidaFree2 == escrituraFueraDelBuffer" );
            escritor.PrintfEscrituraFueraDelBuffer( Definicion.Nombre );
            escritor.WriteLine( "cantErrores++;" );
            escritor.FinIf();
            escritor.If( "salidaFree2 == liberarPosMemNoValida" );
            escritor.PrintfCambioDeDireccionDelPuntero( Definicion.Nombre );
            escritor.WriteLine( "cantErrores++;" );
            escritor.FinIf();
            escritor.If( "salidaFree2 == dosFreeDelMismoBuffer" );
            escritor.PrintfDosFreeAlMismoParam( Definicion.Nombre );
            escritor.WriteLine( "cantErrores++;" );
            escritor.FinIf();
        }