bool xdelta::XdeltaEncoder::EncodeDiffMemoryBlock( const dung::Byte_t* newBlock, size_t newSize, const dung::Byte_t* oldBlock, size_t oldSize, dung::Byte_t*& diffBlock, size_t& diffSize ) { const size_t reservedSize = max( newSize, 1024 ); diffBlock = SCARAB_NEW dung::Byte_t[ reservedSize ]; diffSize = 0; int flags = MakeFlags( m_config ); m_errorCode = xd3_encode_memory( newBlock, newSize, oldBlock, oldSize, diffBlock, &diffSize, reservedSize, flags ); return m_errorCode == 0; }
usize_t bench_speed(const uint8_t *from_buf, const size_t from_len, const uint8_t *to_buf, const size_t to_len, uint8_t *delta_buf, const size_t delta_alloc, int flags) { usize_t delta_size; int ret = xd3_encode_memory(to_buf, to_len, from_buf, from_len, delta_buf, &delta_size, delta_alloc, flags); if (ret != 0) { fprintf(stderr, "encode failure: %d: %s\n", ret, xd3_strerror(ret)); abort(); } return delta_size; }