X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;ds=inline;f=cinelerra-5.1%2Fcinelerra%2Ffilexml.C;h=5390617b05782be862a806c66c9579abe9b6ec41;hb=803cf48f8f7ee246eb5473e55fc2125e8b398250;hp=065dce7db07758c48a49b9a6366a3dac0e0180e1;hpb=efb3600851fd27b13d3053ffbdb6434535580bfd;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/filexml.C b/cinelerra-5.1/cinelerra/filexml.C index 065dce7d..5390617b 100644 --- a/cinelerra-5.1/cinelerra/filexml.C +++ b/cinelerra-5.1/cinelerra/filexml.C @@ -73,9 +73,10 @@ XMLBuffer::~XMLBuffer() if( destroy ) delete [] bfr; } -unsigned char *&XMLBuffer::demand(long len) +int XMLBuffer::demand(long len) { if( len > bsz ) { + if( !destroy ) return 0; long sz = inp-bfr; len += sz/2 + BCTEXTLEN; unsigned char *np = new unsigned char[len]; @@ -85,13 +86,13 @@ unsigned char *&XMLBuffer::demand(long len) lmt = np + len; bsz = len; delete [] bfr; bfr = np; } - return bfr; + return 1; } int XMLBuffer::write(const char *bp, int len) { - if( !destroy && lmt-inp < len ) len = lmt-inp; if( len <= 0 ) return 0; + if( !destroy && lmt-inp < len ) len = lmt-inp; demand(otell()+len); memmove(inp,bp,len); inp += len;