Seems like there are some string resources not released in my embedding
program.  But as a temporary solution, I just internalize everything.

2009/7/20 Ivan Posva <[email protected]>

>
> On Mon, Jul 20, 2009 at 12:56, Erik Corry<[email protected]> wrote:
> > 2009/7/20 v8hope <[email protected]>
> >>
> >> It seems like if a v8::String is called "MakeExternal()",  deserialize
> >> will crash.
> >> serialize.cc does not handle this case.
> >> Correct me if I am wrong.
> >
> > I think you are right.
>
> The problem is that an external string refers to characters allocated
> by the embedding program. When serializing the external pointer is not
> preserved as V8 has no way of recreating the memory layout of the
> embedding program. The correct way to solve this is either to fail
> serialization of external strings, have some smarter callback
> mechanism when serializing and deserializing external strings or to
> make these external strings internal again as part of serialization.
> The last option will of course change the behavior of your strings
> potentially if the embedding program relies on certain strings being
> externalized. I am leaning towards the first option here to avoid the
> hard to diagnose crasher when loading the snapshot.
>
> Cheers,
> -Ivan
>
> P.S. Patches are welcome...
>
> > --
> > Erik Corry, Software Engineer
> > Google Denmark ApS.  CVR nr. 28 86 69 84
> > c/o Philip & Partners, 7 Vognmagergade, P.O. Box 2227, DK-1018 Copenhagen
> K,
> > Denmark.
> >
> > >
> >
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
-~----------~----~----~----~------~----~------~--~---

Reply via email to