Skip to content

オブジェクトリファレンスのデータサイズ設定の処理を見直す #10

Description

@Nobu19800

復号の時のオブジェクトリファレンスを構造体に格納する処理について、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

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関数の引数で切り替えられるようにしたい。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions