On Wed, Apr 4, 2012 at 11:51 PM, Frank Shearar <[email protected]>wrote:
> On 4 April 2012 22:32, Igor Stasenko <[email protected]> wrote: > > On 4 April 2012 23:25, <[email protected]> wrote: > >> Mariano, > >> > >> In fact, presently use of become is not considered good OOP so at first > >> my humble suggestion is you consider revising the whole architecture > >> in order to understand why you need such a thing and find a better > >> [design] pattern. > >> > > > > there is no other way to represent an object by proxy, which is not > > yet in memory, but loaded on demand. > > otherwise you will be forced to make an outer object (which refers to > > a proxy), to know it > > and replace a reference to it with another object. > > And this seems like precisely one of those times you really do want to > reach into the magic toolbox for #become:. Sometimes you really do > need it. > Thanks Carlos for the advice. Since Igor knows what I am doing, he answered for me ;) So yes....I am swappout graphs between primary and secondary memory and there are objects that I need to become to proxies and vice-versa. This is not an app what I am doing, but a kind of hacky stuff implemented at the object side. Cheers > > frank > > >> HTH > >> > >> -- > >> Cesar Rabak > >> > >> > >> Em 04/04/2012 12:32, Mariano Martinez Peck < [email protected] > > escreveu: > >> > >>> Hi guys. I noticed that there is a limit in the number of objects > >>> you can become. In my case, I am becoming 2312157 objects. So..I > >>> don't expect that the become works. I imagine that it was not > >>> designed for so many objects in mind ;) > >>> However, what I would really understand is where is the limitation > >>> and the reason. And of course, if someone already knows which is > >>> the real number limit. Otherwise, I will do a kind of binary search > >>> and discover it. > >>> If you want to reproduce it: > >>> | dict | > >>> dict := Dictionary new. > >>> 2312157 timesRepeat: [ dict at: Object new put: Object new ]. > >>> 3 timesRepeat: [Smalltalk garbageCollect]. > >>> dict keys elementsForwardIdentityTo: dict values. > >>> > >>> throws a #primitiveFailed. > >>> > >>> Thanks, > >> > > > > > > > > -- > > Best regards, > > Igor Stasenko. > > > > -- Mariano http://marianopeck.wordpress.com
