basic support for builtins
[m6w6/ext-psi] / src / types / decl_struct.c
index cfe46c91e5b535b1807b88d8d5532696d5b7ce37..14076c6b296d7cd8a72f5e001ddff4ab30ca6cd2 100644 (file)
@@ -31,7 +31,7 @@
 struct psi_decl_struct* psi_decl_struct_init(zend_string *name,
                struct psi_plist *args)
 {
-       struct psi_decl_struct *s = calloc(1, sizeof(*s));
+       struct psi_decl_struct *s = pecalloc(1, sizeof(*s), 1);
        s->name = zend_string_copy(name);
        s->args = args;
        return s;
@@ -177,7 +177,7 @@ bool psi_decl_struct_validate(struct psi_data *data, struct psi_decl_struct *s,
                        align = psi_decl_arg_align(darg, &pos, &len);
 
                        if (darg->layout) {
-                               if (darg->layout->pos != pos) {
+                               if (darg->layout->pos != pos && !darg->layout->bfw) {
                                        data->error(data, darg->token, PSI_WARNING,
                                                        "Computed offset %zu of %s.%s does not match"
                                                        " pre-defined offset %zu",