Thank you
Pada tanggal 26 Mei 2016 22:25, "Cesar Valdez" <cesar...@gmail.com> menulis:

> Hi All,
>
> I working in a add-on for Node.js, and i have the following problem:
>
> class A {
>
>   local<object> CreateObject( callback) {
>
>      if(!p->isEmpty()){
>       auto tmp = Object::New(Isolate, objTemplate); //get from cache.
>       return tmp->newInstance();  //we have a template, create a
> instance.
>      }
>
>       /* create object here and assign callback  {x:callback[function]}
>  */
>       objTemplate.Reset(Isolate, obj);  //cache here.
>       return obj->newInstance();.
>    }
>
>   ~A(){
>     objTemplate.Reset();
>   }
>
>  private:
>   Persistent<ObjectTemplate> objTemplate;
> }
>
> /* NativeFunction declared here will be linked to obj methods created by A
> */
>
> A a;
> void MakeObject(functionCallbackInfo args){
>    args->GetReturn().Set(a.CreateObject(NativeFunction))
>
> }
>
>
>
>
>
>
>
> Javascript
> Enter code here...
> (function(){
>
>   for(var i=0; i<1000; i++) {
>
>    // this call MakeObject in C++.
>    var tmp = make_object();            // tmp => {n:[function],....};
>   }
>
> })
>
>
>
>
>
> I just want to cache the Object members using a template, cause i find
> that it was way slower to make the object from scratch, problem is that
> when the VM finish i got a SIGSEGV Segmentation fault,
> I'm assume this is because of GC, so I add the cleaning function in the
> desctructor but not luck, the only way to avoid the SIGSEGV is to delete
> the object way before exit.
>
> I'm thinking to use Eternal<>, but just wanted to know if this is not a
> good use case for Persistent?  Is a more elegant way to solve this problem
> ? or I'm doing something wrong.
>
> Thanks.
>
>
>
>
>
>
>
>
>
> --
> --
> v8-users mailing list
> v8-users@googlegroups.com
> http://groups.google.com/group/v8-users
> ---
> You received this message because you are subscribed to the Google Groups
> "v8-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to v8-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to