[Pidgin] #16001: Duplicate calls to purple_xfer_set_bytes_sent()
Pidgin
trac at pidgin.im
Mon Feb 17 02:22:15 EST 2014
#16001: Duplicate calls to purple_xfer_set_bytes_sent()
-------------------------+------------------------
Reporter: MarkDoliner | Owner: tomkiewicz
Type: defect | Status: new
Milestone: 3.0.0 | Component: libpurple
Version: 3.0.0hg | Keywords:
-------------------------+------------------------
The newly-added purple_xfer_write_file() and purple_xfer_read_file()
functions in libpurple/xfer.c include calls to
purple_xfer_set_bytes_sent().
There are two problems with this:
1. The write_file and read_file() functions deal with writing and reading
a local file on disk, however bytes_sent is intended to represent the
number of bytes sent or receiver over the network from the peer. Therefore
it's conceptually wrong for these functions to alter bytes_sent.
2. The do_transfer() function in libpurple/xfer.c ALSO calls
purple_xfer_set_bytes_sent(). It does this after calling the write_file
and read_file functions, which means bytes_sent gets incremented TWICE.
THE FIX:
It seems clear to me that purple_xfer_write_file() and
purple_xfer_read_file() shouldn't call purple_xfer_set_bytes_sent(). But
purple_xfer_write_file and purple_xfer_read_file() are called from places
other than do_transfer(). Will removing the calls to
purple_xfer_set_bytes_sent() cause problem for those places? I don't know
--we should check.
--
Ticket URL: <https://developer.pidgin.im/ticket/16001>
Pidgin <https://pidgin.im>
Pidgin
More information about the Tracker
mailing list