diff options
author | midipix <writeonce@midipix.org> | 2016-09-02 14:23:23 -0400 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2016-09-03 14:36:44 -0400 |
commit | 41c05b4fa291ab46245cc1b7e64e55f2a75a2190 (patch) | |
tree | 8513405ae602ebd6029542378a47da69dacb85af /src | |
parent | 6dc88795d8414d03ce8cd9c99a2107841c56d484 (diff) | |
download | slibtool-41c05b4fa291ab46245cc1b7e64e55f2a75a2190.tar.bz2 slibtool-41c05b4fa291ab46245cc1b7e64e55f2a75a2190.tar.xz |
driver: added initial error info vector and buffer allocation.
Diffstat (limited to 'src')
-rw-r--r-- | src/driver/slbt_driver_ctx.c | 7 | ||||
-rw-r--r-- | src/internal/slibtool_driver_impl.h | 4 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/driver/slbt_driver_ctx.c b/src/driver/slbt_driver_ctx.c index baf08fb..3ca33c1 100644 --- a/src/driver/slbt_driver_ctx.c +++ b/src/driver/slbt_driver_ctx.c @@ -152,6 +152,7 @@ static struct slbt_driver_ctx_impl * slbt_driver_ctx_alloc( size_t size; struct argv_entry * entry; const char ** units; + int elements; size = sizeof(struct slbt_driver_ctx_alloc); size += (nunits+1)*sizeof(const char *); @@ -166,8 +167,14 @@ static struct slbt_driver_ctx_impl * slbt_driver_ctx_alloc( if (!entry->fopt) *units++ = entry->arg; + elements = sizeof(ictx->ctx.erribuf) / sizeof(*ictx->ctx.erribuf); + + ictx->ctx.errinfp = &ictx->ctx.erriptr[0]; + ictx->ctx.erricap = &ictx->ctx.erriptr[--elements]; + ictx->meta = meta; ictx->ctx.ctx.units = ictx->units; + ictx->ctx.ctx.errv = ictx->ctx.errinfp; return &ictx->ctx; } diff --git a/src/internal/slibtool_driver_impl.h b/src/internal/slibtool_driver_impl.h index 19549ad..132e0e5 100644 --- a/src/internal/slibtool_driver_impl.h +++ b/src/internal/slibtool_driver_impl.h @@ -75,6 +75,10 @@ struct slbt_driver_ctx_impl { char * libname; char ** targv; char ** cargv; + struct slbt_error_info**errinfp; + struct slbt_error_info**erricap; + struct slbt_error_info *erriptr[64]; + struct slbt_error_info erribuf[64]; }; struct slbt_unit_ctx_impl { |