|
8 | 8 | * |
9 | 9 | * |
10 | 10 | * IDENTIFICATION |
11 | | - * $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.47 1999/02/03 21:17:20 momjian Exp $ |
| 11 | + * $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.48 1999/02/04 14:52:00 momjian Exp $ |
12 | 12 | * |
13 | 13 | *------------------------------------------------------------------------- |
14 | 14 | */ |
@@ -540,10 +540,16 @@ inv_write(LargeObjectDesc *obj_desc, char *buf, int nbytes) |
540 | 540 | else |
541 | 541 | { |
542 | 542 | if (obj_desc->offset>obj_desc->highbyte) |
| 543 | +{ |
543 | 544 | tuplen=inv_wrnew(obj_desc,buf,nbytes-nwritten); |
| 545 | +ReleaseBuffer(buffer); |
| 546 | +} |
544 | 547 | else |
545 | 548 | tuplen=inv_wrold(obj_desc,buf,nbytes-nwritten,&tuple,buffer); |
546 | | -ReleaseBuffer(buffer); |
| 549 | +/* inv_wrold() has already issued WriteBuffer() |
| 550 | + which has decremented local reference counter |
| 551 | + (LocalRefCount). So we should not call |
| 552 | + ReleaseBuffer() here. -- Tatsuo 99/2/4 */ |
547 | 553 | } |
548 | 554 |
|
549 | 555 | /* move pointers past the amount we just wrote */ |
|