This is correct, and unfortunate. Different people from 4D have even called it 
a bug, but this is how it is.

You can start in, say, method A with a line like

  $obj:=[Table]objectField

... and pass $obj through any number of methods as a local variable, or a 
pointer, or a process object variable. Any changes anywhere down the line will 
be made in [Table]objectField, since that's the only "real" object -- 
everything else is just a reference.

Not a fan -- this is no better than process variables when things get complex. 
But I guess the alternative is managing your objects yourself which most people 
wouldn't like.
 
--
Jeffrey Kain
[email protected]




> On Jul 25, 2017, at 2:29 AM, Peter Bozek via 4D_Tech <[email protected]> 
> wrote:
> 
> As I understand it, there is one 'heap' of objects, what means all objects
> are IP (where by object I mean here data structures containing data).
> Object variables are local, process or IP, but they are just references to
> this global object heap.

**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[email protected]
**********************************************************************

Reply via email to