flush
[m6w6/ext-psi] / src / engine.h
index 9a2ddcf5296dbe8df365785371b0b0bb744e4dd7..364ec550fd760350e5d334522b842b8ab6a7f63f 100644 (file)
@@ -3,9 +3,19 @@
 
 size_t psi_t_alignment(token_t t);
 size_t psi_t_size(token_t t);
-size_t psi_t_align(token_t t, size_t s);
 
-size_t psi_offset_padding(size_t diff, size_t alignment);
+static inline size_t psi_align(size_t s, size_t a) {
+       return ((s - 1) | (a - 1)) + 1;
+}
+
+static inline size_t psi_offset_padding(size_t diff, size_t alignment) {
+       if (diff && diff <= psi_align(diff, alignment)) {
+               diff = 0;
+       }
+
+       return diff;
+}
+
 int psi_internal_type(impl_type *type);
 zend_internal_arg_info *psi_internal_arginfo(impl *impl);
 size_t psi_num_min_args(impl *impl);