K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>管理人様 > >ご回答ありがとうございます.下記了解いたしました. > >>ちょっとありえないミスです。申しわけございませんでした。 >>該当の実装は、以下で正しいです。 >> >>>気になって探してみたところ,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); > >こんな風に使っているので... > >ちなみに,実際にバグが起こっているわけではありません(エラー処理に使っているので,実際には実行されない).
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!