0

C ++コードでオブジェクトを作成し、ActionScriptコードで返す場合、返す前にAS3_Releaseを呼び出す必要がありますか?たとえば、*。ggファイルに次の関数があります。

public function makeThumbnail(...): Object
{
     AS3_Val objDestByteArray = AS3_New(ByteArray_class, no_params);
     int intDestWidth;
     int intDestHeight;

     // ...  make some calculations and set results as object properties

     AS3_Val result = AS3_Object("width:IntType, height:IntType, data:AS3ValType", intDestWidth, intDestHeight, objDestByteArray);

     // Do I need to call this?
     //AS3_Release(objDestByteArray);
     //AS3_Release(result);

     return result;
}

と変数を呼び出す必要AS3_Releaseがありますか?objDestByteArrayresult

4

1 に答える 1

1

すべての一意のAS3_Val変数は、最終的に解放する必要があります。戻り変数の場合AS3_Val、関数は値自体を解放しませんが、代わりに、呼び出し元が値の最終的な解放を手配することを前提としています。

したがって、あなたの例では、リリースしますが、まだobjDestByteArrayリリースしresultません。呼び出しmakeThumbnailている人は誰でも、その戻り値を解放する責任があります。

于 2011-02-01T18:21:43.417 に答える