[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 03/15] libxl_qmp: Implement fd callback and read data [and 1 more messages]
On Mon, Oct 29, 2018 at 05:31:59PM +0000, Ian Jackson wrote: > Anthony PERARD writes ("Re: [PATCH v5 03/15] libxl_qmp: Implement fd callback > and read data [and 1 more messages]"): > > On Mon, Oct 15, 2018 at 05:35:36PM +0100, Ian Jackson wrote: > > > > + ev->buf_consumed += len; > > > > + > > > > + if (ev->buf_consumed >= ev->buf_used) { > > > > + free(ev->rx_buf); > > > > > > Surely buf_consumed <= buf_used ? Maybe you should assert that. > > > > I'm attempting to detect here if there's something left in the buffer > > that hasn't been parsed yet. If there is nothing left, we can free the > > buffer. > > > > Or do you mean that the condition should be buf_consumed == buf_used ? > > It felt odd to me to read `ev->buf_consumed >= ev->buf_used' when I > knew that buf_consumed <= buf_used. I am suggesting adding > assert(buf_consumed <= buf_used); > and then writing > if (ev->buf_consumed == ev->buf_used) > > To be honest this condition is a bit fiddly. Why not do this after > subtracting buf_consumed from buf_used and copying the old data down ? Somehow, that feels wrong to move the data inside the buffer. > Then it would read > if (!ev->buf_used) > > But even better, if you change your code to permit ev->rx_buf != NULL > when ev->rx_buf_used==0, this code goes away completely. I guess you mean to keep the buffer even once there's nothing left to parse? (And only free it once we call _dispose().) -- Anthony PERARD _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |