On 01/26/2017 01:30 PM, Jon Foster wrote:
On 01/18/2017 01:16 AM, Michael Schnell wrote:
On 17.01.2017 19:07, Lars wrote:
If you have a jvm project with lots of code and now want to start using
this code in another regular mode objfpc unix/win32 application...
Exactly this as the point I wanted to express. Even when coding an fpc
application or library for use with jvm, free (and destroy) should be
used and provided in the normal way good old Object Pascal requires. If
jvm does garbage collection under the hood (and not momentarily adheres
to free, as we are used to with Object Pascal) this should be handled as
a hidden implementation detail and as little as possible be communicated
outside, so that using this code in another regular mode objfpc
unix/win32 application can be done as seamlessly as possible .
I agree for seamless compatibility "free" / "destroy" should be provided.
As far as I can tell the JVM implementation of TObject does provide
these. Using the native Java/Android objects is a lot like using Lazarus
/ Delphi / TComponent based classes. You create them and whoever you
specify as the owner frees them. In this case the JVM is freeing them.
But that's not a detail I need concern myself with.
That said, all of the code in my project was written and tested in plain
old native compiled code running on my Linux box. Only the UI code is
unique to Android. As such I've not run into any problems creating and
freeing my native FPC based components. I haven't tried
freeing/destroying Java/Android components. I imagine its going to tell
me that those methods don't exist on those objects, since those class
libraries don't provide them. But maybe FPC has hidden that detail as
well. When I get a moment I'll give it a whirl, 'cause I've had many
years of training to free what I create. I started my Pascal journey with
Delphi 1/2 in '96.
So as I thought Java/Android objects don't apparently have a free or
destroy method, simulated or otherwise. But any classes defined in Pascal
provide those methods, if they descend from the default TObject. I think I
read somewhere that classes can be defined that descend from the base Java
class but I haven't done it.
- Jon
--
Sent from my Debian Linux workstation -- http://www.debian.org/intro/about
Jon Foster
JF Possibilities, Inc.
j...@jfpossibilities.com
541-410-2760
Making computers work for you!
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal