Feature Request: Eliminate as many try block as possible

Davidl Davidl at 126.com
Thu Apr 5 00:28:18 PDT 2007


err, i don't know if it requires RetPoint(return to specific IP address)?
cause the idea of using SaveStackFrame & RestoreStackFrame is trying to
get the signal break the whole process like a real exception does.

so possible use of it would be

void func()
{
     Frame f = new f;
     f.SaveStackFrame;
     void handler(char[] msg, int i)
     {

         f.RestoreStackFrame(&Label);
     }
     //Set the handler to our nested func

     //call some std funcs

     Label:
     // continue normal process
}

and a typo in Frame :p static int _esp; should be int _esp;

and another feature request is user can use & operator to get
forward label address to void*


>
> Step1: enhance the Signal & Slot func, make it support observer of a  
> delegate of a nested func
> Step2: provide low-level func, SaveStackFrame, RestoreStackFrame(these  
> two func manipulate the SP)
> actually they are quite simple, a rough implementation of them would  
> be(i haven't tried to compile
> it actually , but they should do the trick) :
> struct Frame
> {
>      static int _esp;
>      SaveStackFrame()
>      {
>          asm
>          {
>              mov _esp,ESP;
>          }
>      }
>
>      RestoreStackFrame()
>      {
>          asm
>          {
>              mov ESP,_esp;
>          }
>      }
> }
>
> Step3:
> make all throw exception in library all proceeded by signal & slot. This  
> would reduce the runtime
> expense, and i think would provide user a lot possibilities with  
> proceeding the exception generated
>   by the standard library. like continue the standard library process?  
> or break the process?




More information about the Digitalmars-d mailing list