Kohei Yoshida wrote:
Hi there,

When I modify an existing struct in its idl and re-build the offapi
module, the buidl fails because of binary incompatible change.

But when I create a parent struct, and make the existing struct a
subclass of the new parent struct, and move some of the data members
from the original struct to the new parent struct, the build also fails
due to "binary incompatible change".

But is that really the case?  For instance, here is the original struct
I'm attempting to modify:

struct TableFilterField
{
    com::sun::star::sheet::FilterConnection Connection;
    long Field;
    com::sun::star::sheet::FilterOperator Operator;
    boolean IsNumeric;
    double NumericValue;
    string StringValue;
};

by moving the first two data members into the new base struct, here is
the change I want to make:

/** New base struct */
struct TableFilterFieldBase
{
    com::sun::star::sheet::FilterConnection Connection;
    long Field;
};

/** Modified original struct. */
struct TableFilterField: TableFilterFieldBase
{
    com::sun::star::sheet::FilterOperator Operator;
    boolean IsNumeric;
    double NumericValue;
    string StringValue;
};

Since the size of the TableFilterFiled as well as the data members and
their order will not change before and after the change, I would think
it's safe to make this change, but is it not safe?

I appreciate your input.

Your reasoning might be valid for C++, but remember that there are more language bindings for UNO.

-Stephan

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to