ccode.close ();
}
+ bool has_instance_fields = false;
foreach (Field f in st.get_fields ()) {
if (f.binding != MemberBinding.INSTANCE) {
// we only compare instance fields
continue;
}
+ has_instance_fields = true;
+
CCodeExpression cexp; // if (cexp) return FALSE;
var s1 = (CCodeExpression) new CCodeMemberAccess.pointer (new CCodeIdentifier ("s1"), f.name); // s1->f
var s2 = (CCodeExpression) new CCodeMemberAccess.pointer (new CCodeIdentifier ("s2"), f.name); // s2->f
ccode.close ();
}
- if (st.get_fields().size == 0) {
+ if (!has_instance_fields) {
// either opaque structure or simple type
if (st.is_simple_type ()) {
var cexp = new CCodeBinaryExpression (CCodeBinaryOperator.EQUALITY, new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, new CCodeIdentifier ("s1")), new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, new CCodeIdentifier ("s2")));