復号の時のオブジェクトリファレンスを構造体に格納する処理について、sizeof(CORBA_Object_struct)で取得できるサイズで領域を確保し、構造体ではその領域のポインタを保持しているため8byte(もしくは4byte)のデータだが、以下のようにsize_of_typecode(kind,F_DEMARSHAL);で取得できるサイズがF_DEMARSHALの引数では1種類しか取得できないため、応急処置として分岐するように修正した。
|
if(flag == F_DEMARSHAL && tc->member_type[i]->kind == tk_objref) |
|
{ |
|
size += sizeof(void *); |
|
} |
|
else |
|
{ |
|
size += size_of_typecode(tc->member_type[i], flag); |
|
} |
オブジェクトリファレンスの場合だけ分岐するのはコードの可読性等が悪くなるため、size_of_typecode関数の引数で切り替えられるようにしたい。
復号の時のオブジェクトリファレンスを構造体に格納する処理について、
sizeof(CORBA_Object_struct)で取得できるサイズで領域を確保し、構造体ではその領域のポインタを保持しているため8byte(もしくは4byte)のデータだが、以下のようにsize_of_typecode(kind,F_DEMARSHAL);で取得できるサイズがF_DEMARSHALの引数では1種類しか取得できないため、応急処置として分岐するように修正した。RtORB/lib/giop-marshal.c
Lines 140 to 147 in 21e2f7f
オブジェクトリファレンスの場合だけ分岐するのはコードの可読性等が悪くなるため、
size_of_typecode関数の引数で切り替えられるようにしたい。