I have arrays of quite large structures (which I can not split). I need half of the structure fields to be RETAINed, but half of them not. If I put the variables in retain area, I am running out of retain memory. I know about {nonpersistent} pragma, but it is for PERSISTENT and not RETAIN storage.
Is there any similar mechanism that makes it possible to exclude some fields form being retained, thus leaving space for others?
Thank you
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
the only way is by putting a structure in retain and copy them into another bigger structure (not retained) however you will need to copy them back into the retained structure for the ones you have to save.
do this only when they are changed.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2017-02-14
Originally created by: scott_cunningham
The whole idea of a structure is a list of data items occupying a zone of memory - an array of bytes divided up into various variables. What your hoping for is to break up that ordered memory and say elements x,y and z are stored over here, and a,c,e are over here and b is over here.
Option 1 a copy in/out as suggested.
Option 2 You may too far in to adjust, but I think your structure should be different. Maybe you can change the structure elements that need to be retain to be pointers, so you can assign to retain space.
Option 3 different hardware with more retain.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
I have arrays of quite large structures (which I can not split). I need half of the structure fields to be RETAINed, but half of them not. If I put the variables in retain area, I am running out of retain memory. I know about {nonpersistent} pragma, but it is for PERSISTENT and not RETAIN storage.
Is there any similar mechanism that makes it possible to exclude some fields form being retained, thus leaving space for others?
Thank you
the only way is by putting a structure in retain and copy them into another bigger structure (not retained) however you will need to copy them back into the retained structure for the ones you have to save.
do this only when they are changed.
Originally created by: scott_cunningham
The whole idea of a structure is a list of data items occupying a zone of memory - an array of bytes divided up into various variables. What your hoping for is to break up that ordered memory and say elements x,y and z are stored over here, and a,c,e are over here and b is over here.
Option 1 a copy in/out as suggested.
Option 2 You may too far in to adjust, but I think your structure should be different. Maybe you can change the structure elements that need to be retain to be pointers, so you can assign to retain space.
Option 3 different hardware with more retain.
Thank you for your suggestions.