| 25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| 26 * POSSIBILITY OF SUCH DAMAGE. |
26 * POSSIBILITY OF SUCH DAMAGE. |
| 27 */ |
27 */ |
| 28 |
28 |
| 29 #include "cx/streams.h" |
29 #include "cx/streams.h" |
| |
30 #include "cx/allocator.h" |
| 30 |
31 |
| 31 #ifndef CX_STREAM_BCOPY_BUF_SIZE |
32 #ifndef CX_STREAM_BCOPY_BUF_SIZE |
| 32 #define CX_STREAM_BCOPY_BUF_SIZE 8192 |
33 #define CX_STREAM_BCOPY_BUF_SIZE 8192 |
| 33 #endif |
34 #endif |
| 34 |
35 |
| 55 if (buf) { |
56 if (buf) { |
| 56 if (bufsize == 0) return 0; |
57 if (bufsize == 0) return 0; |
| 57 lbuf = buf; |
58 lbuf = buf; |
| 58 } else { |
59 } else { |
| 59 if (bufsize == 0) bufsize = CX_STREAM_BCOPY_BUF_SIZE; |
60 if (bufsize == 0) bufsize = CX_STREAM_BCOPY_BUF_SIZE; |
| 60 lbuf = malloc(bufsize); |
61 lbuf = cxMallocDefault(bufsize); |
| 61 if (lbuf == NULL) return 0; |
62 if (lbuf == NULL) return 0; |
| 62 } |
63 } |
| 63 |
64 |
| 64 size_t r; |
65 size_t r; |
| 65 size_t rn = bufsize > n ? n : bufsize; |
66 size_t rn = bufsize > n ? n : bufsize; |