Lines Matching refs:ab

729   struct apply_baton *ab = (struct apply_baton *) baton;
737 if (ab->result_digest)
741 err = svn_checksum_final(&md5_checksum, ab->md5_context, ab->pool);
743 memcpy(ab->result_digest, md5_checksum->digest,
747 err = svn_error_compose_create(err, svn_stream_close(ab->target));
748 svn_pool_destroy(ab->pool);
755 || (window->sview_offset >= ab->sbuf_offset
757 >= ab->sbuf_offset + ab->sbuf_len)));
760 SVN_ERR(size_buffer(&ab->tbuf, &ab->tbuf_size, window->tview_len, ab->pool));
763 if (window->sview_offset != ab->sbuf_offset
764 || window->sview_len > ab->sbuf_size)
766 char *old_sbuf = ab->sbuf;
769 SVN_ERR(size_buffer(&ab->sbuf, &ab->sbuf_size, window->sview_len,
770 ab->pool));
774 if ( (apr_size_t)ab->sbuf_offset + ab->sbuf_len
778 (apr_size_t)(window->sview_offset - ab->sbuf_offset);
779 memmove(ab->sbuf, old_sbuf + start, ab->sbuf_len - start);
780 ab->sbuf_len -= start;
783 ab->sbuf_len = 0;
784 ab->sbuf_offset = window->sview_offset;
788 if (ab->sbuf_len < window->sview_len)
790 len = window->sview_len - ab->sbuf_len;
791 SVN_ERR(svn_stream_read_full(ab->source, ab->sbuf + ab->sbuf_len, &len));
792 if (len != window->sview_len - ab->sbuf_len)
795 ab->sbuf_len = window->sview_len;
801 svn_txdelta_apply_instructions(window, ab->sbuf, ab->tbuf, &len);
807 if (ab->result_digest)
808 SVN_ERR(svn_checksum_update(ab->md5_context, ab->tbuf, len));
810 return svn_stream_write(ab->target, ab->tbuf, &len);
824 struct apply_baton *ab;
826 ab = apr_palloc(subpool, sizeof(*ab));
827 ab->source = source;
828 ab->target = target;
829 ab->pool = subpool;
830 ab->sbuf = NULL;
831 ab->sbuf_size = 0;
832 ab->sbuf_offset = 0;
833 ab->sbuf_len = 0;
834 ab->tbuf = NULL;
835 ab->tbuf_size = 0;
836 ab->result_digest = result_digest;
839 ab->md5_context = svn_checksum_ctx_create(svn_checksum_md5, subpool);
842 ab->error_info = apr_pstrdup(subpool, error_info);
844 ab->error_info = NULL;
847 *handler_baton = ab;