diff --git a/lib/capn-list.inc b/lib/capn-list.inc index 7296638..ad94ec8 100644 --- a/lib/capn-list.inc +++ b/lib/capn-list.inc @@ -41,7 +41,9 @@ UINT_T CAT(capn_get,SZ) (LIST_T l, int off) { int CAT(capn_getv,SZ) (LIST_T l, int off, UINT_T *to, int sz) { int i; - capn_ptr p = l.p; + capn_ptr p; + capn_resolve(&l.p); + p = l.p; if (off + sz > p.len) { sz = p.len - off; } diff --git a/lib/capn.c b/lib/capn.c index 19231c2..6e0f196 100644 --- a/lib/capn.c +++ b/lib/capn.c @@ -898,7 +898,9 @@ int capn_set1(capn_list1 l, int off, int val) { int capn_getv1(capn_list1 l, int off, uint8_t *data, int sz) { /* Note we only support aligned reads */ int bsz; - capn_ptr p = l.p; + capn_ptr p; + capn_resolve(&l.p); + p = l.p; if (p.type != CAPN_BIT_LIST || (off & 7) != 0) return -1;