On Mon, 07 Dec 2009, Pritpal Bedi wrote:

Hi,

> > I've just checked hbqt_slots.cpp and there are _many_
> > hb_vmRequestReenter() calls without hb_vmRequestRestore() 
> > pairs.
> > I don't know the consequences, but it doesn't seem right.
> Matched.
> I also do not know its implications, Przemek ?

It may change in different HVM version so no one should create code
which depends on current behavior anyhow if you are interested what
happens now then return value is overwritten by last return value in
executed code (depending on context it may cause some serious runtime
problems (Pritpal should remember problems with runtime errors due to
overloaded returned logical value in xHarbour) and the exception (QUIT,
BREAK, ENDPROC) is not properly restored. Additionally stack items
allocated for stored data are not freed until returning to upper level
HB_FUNC which activated such C code so executing hb_vmRequestReenter()
without hb_vmRequestRestore() in a loop increase the stack size. We
have automatic stack resizing so it will not generate any visible
error until system has enough memory but of course resources are
consumed.

best regards,
Przemek
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to