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