C++ クラスのインスタンスをインスタンス化し、それを引数として JavaScript コールバックに渡したいと考えています。このクラスObjectWrap
は から継承され、Node.js で使用できます。
インスタンスが JavaScript から来た場合、同じクラスのインスタンスをコールバックに渡すことができます。
これは私がしなければならないことの基本的な例です:
MyClass *instance = new MyClass();
// If was passed as the first param to this method, commit is set as below, this code works.
// MyClass *instance = ObjectWrap::Unwrap<MyClass>(args[0]->ToObject());
// Assign some property values to commit
Handle<Value> argv[] = { instance->handle_ };
ar->callback->Call(Context::GetCurrent()->Global(), 1, argv);
これは機能しません。代わりに、セグメンテーション違反が発生します。gdb
私に言います:
Program received signal EXC_BAD_ACCESS, Could not access memory.
instance
コードを変更してコールバックに渡せるようにするにはどうすればよいですか?
更新: 問題のクラスは Github: commit.ccで表示できます。