Ver Mensaje Individual
  #11  
Antiguo 17-01-2008
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Reputación: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Supongo que la máquina virtual de Java tiene pila y que también es posible obtener la "dirección" de una función. Si es así, entonces podría hacerse obteniendo la dirección de las funciones F2() y F3(). Luego, en F1(), se extrae la dirección del llamante de la pila y se vuelve a apilar para evitar problemas. Al menos en las máquinas "reales" puede hacerse.

[edit]En Pascal sería algo así:

Código Delphi [-]
PROCEDURE F1;
VAR
  DireccionFuncion: POINTER;
BEGIN
  ASM
    POP AX;
    PUSH AX;
    MOVE @DireccionFuncion, AX;
  END;
  IF (DireccionFuncion = POINTER (@F2)) THEN
  BEGIN
  ...
  END
  ELSE IF (DireccionFuncion = POINTER (@F3)) THEN
  BEGIN
  ...
  END;
  ...
END;
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine

Última edición por Ñuño Martínez fecha: 17-01-2008 a las 12:00:54.
Responder Con Cita