| 1421 | |
| 1422 | |
| 1423 | void Blob::internalClose(CheckStatusWrapper* status) |
| 1424 | { |
| 1425 | /************************************** |
| 1426 | * |
| 1427 | * g d s _ c l o s e _ b l o b |
| 1428 | * |
| 1429 | ************************************** |
| 1430 | * |
| 1431 | * Functional description |
| 1432 | * Close a completed blob. |
| 1433 | * |
| 1434 | **************************************/ |
| 1435 | try |
| 1436 | { |
| 1437 | reset(status); |
| 1438 | |
| 1439 | CHECK_HANDLE(blob, isc_bad_segstr_handle); |
| 1440 | |
| 1441 | Rdb* rdb = blob->rbl_rdb; |
| 1442 | CHECK_HANDLE(rdb, isc_bad_db_handle); |
| 1443 | rem_port* port = rdb->rdb_port; |
| 1444 | RefMutexGuard portGuard(*port->port_sync, FB_FUNCTION); |
| 1445 | |
| 1446 | if ((blob->rbl_flags & Rbl::CREATE) && blob->rbl_ptr != blob->rbl_buffer) |
| 1447 | { |
| 1448 | fb_assert(!blob->isCached()); |
| 1449 | |
| 1450 | send_blob(status, blob, 0, NULL); |
| 1451 | } |
| 1452 | |
| 1453 | if (!blob->isCached()) |
| 1454 | release_object(status, rdb, op_close_blob, blob->rbl_id); |
| 1455 | release_blob(blob); |
| 1456 | blob = NULL; |
| 1457 | } |
| 1458 | catch (const Exception& ex) |
| 1459 | { |
| 1460 | ex.stuffException(status); |
| 1461 | } |
| 1462 | } |
| 1463 | |
| 1464 | |
| 1465 | void Blob::close(CheckStatusWrapper* status) |
nothing calls this directly
no test coverage detected