[1853] Re:crowbar ver2のnative pointerについて
投稿者:hiro
2013/01/11 08:12:26
管理人様
ご回答ありがとうございます.下記了解いたしました.
>ちょっとありえないミスです。申しわけございませんでした。
>該当の実装は、以下で正しいです。
>
>>気になって探してみたところ,ver.4のソースコードに
>>
>>struct CRB_Object_tag {
>> ObjectType type;
>> unsigned int marked:1;
>> union {
>> CRB_Array array;
>> CRB_String string;
>> CRB_Assoc assoc;
>> ScopeChain scope_chain;
>> NativePointer native_pointer;
>> } u;
>> struct CRB_Object_tag *prev;
>> struct CRB_Object_tag *next;
>>};
>
>ご報告いただきありがとうございました。週末あたりに正誤表に入れさせて
>いただきます。
ありがとうございます.ミスを全部潰すのは大変ですよね...
私もまだver.2までしか進んでいませんが,大変勉強になっています.ありがとうございます.
また,もう一点気がついたことがあるので報告させて頂きます.
util.cに,crb_get_operator_string関数があるかと思います.
以下のようなコードになっているのですが,
---------------------------------------------
char *str
switch(type) {
case XXX_EXPRESSION:
str = "文字列"
}
return str;
---------------------------------------------
これだと,リターンされる文字列は自動変数なので,関数を抜けたらメモリが開放されるため,バグになる可能性があるのではないでしょうか?
char *op_str = crb_get_operator_string(operator);
こんな風に使っているので...
ちなみに,実際にバグが起こっているわけではありません(エラー処理に使っているので,実際には実行されない).