Discussion:
Object checks
Add Reply
C Western
2017-04-30 08:53:34 UTC
Reply
Permalink
Raw Message
If I may, a couple of queries about code generated for object checking
when range checks are on (-Cr):

An explicit check for nil is generated, which seems redundant, as any
attempt to use the value will generate a SIGSEGV anyway on most
platforms, or am I missing something?

If the fpc_check_object fails it calls RunError, which forces the
application to terminate, whereas a SIGSEGV will raise an exception and
give the user the option of continuing (at least in an LCL app). Is
there any reason why fpc_check_object does not call HandleError?

Colin
_______________________________________________
fpc-devel maillist - fpc-***@lists.freepascal.org
http://lists.freepasc
Pierre Muller
2017-05-05 11:54:28 UTC
Reply
Permalink
Raw Message
Hi Colin,
Post by C Western
If I may, a couple of queries about code generated for object checking
An explicit check for nil is generated, which seems redundant, as any
attempt to use the value will generate a SIGSEGV anyway on most
platforms, or am I missing something?
If the fpc_check_object fails it calls RunError, which forces the
application to terminate, whereas a SIGSEGV will raise an exception and
give the user the option of continuing (at least in an LCL app). Is
there any reason why fpc_check_object does not call HandleError?
Thanks for the suggestion,

I applied a patch in commit 36113 to trunk that
substitutes RunError with HandleError.
It has been applied to three functions:
fpc_help_destructor, fpc_check_object and fpc_check_object_ext



Pierre
_______________________________________________
fpc-devel maillist - fpc-***@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-de
C Western
2017-05-06 07:56:37 UTC
Reply
Permalink
Raw Message
Post by Pierre Muller
I applied a patch in commit 36113 to trunk that
substitutes RunError with HandleError.
fpc_help_destructor, fpc_check_object and fpc_check_object_ext
Thank you for doing this. In the meantime I put a slightly updated patch
in 31745 in the bug tracker, which gives slightly better stack traces.

Colin
_______________________________________________
fpc-devel maillist - fpc-***@lists.freepascal.org
http://lists
Pierre Muller
2017-05-06 13:57:06 UTC
Reply
Permalink
Raw Message
Post by C Western
Post by Pierre Muller
I applied a patch in commit 36113 to trunk that
substitutes RunError with HandleError.
fpc_help_destructor, fpc_check_object and fpc_check_object_ext
Thank you for doing this. In the meantime I put a slightly updated patch
in 31745 in the bug tracker, which gives slightly better stack traces.
Hi Colin,

thanks for this improvement,
I committed it in rev 36134.

Pierre
_______________________________________________
fpc-devel maillist - fpc-***@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo

Loading...