MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / REMOTE_release_request

Function REMOTE_release_request

src/remote/remote.cpp:449–501  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

447
448
449void REMOTE_release_request( Rrq* request)
450{
451/**************************************
452 *
453 * R E M O T E _ r e l e a s e _ r e q u e s t
454 *
455 **************************************
456 *
457 * Functional description
458 * Release a request block and friends.
459 *
460 **************************************/
461 Rdb* rdb = request->rrq_rdb;
462
463 for (Rrq** p = &rdb->rdb_requests; *p; p = &(*p)->rrq_next)
464 {
465 if (*p == request)
466 {
467 *p = request->rrq_next;
468 break;
469 }
470 }
471
472 // Get rid of request and all levels
473
474 for (;;)
475 {
476 Rrq::rrq_repeat* tail = request->rrq_rpt.begin();
477 const Rrq::rrq_repeat* const end = tail + request->rrq_max_msg;
478 for (; tail <= end; tail++)
479 {
480 RMessage* message = tail->rrq_message;
481 if (message)
482 {
483 if (!request->rrq_level)
484 {
485#ifdef DEBUG_REMOTE_MEMORY
486 printf("REMOTE_release_request free format %x\n", tail->rrq_format);
487#endif
488 delete tail->rrq_format;
489 }
490 REMOTE_release_messages(message);
491 }
492 }
493 Rrq* next = request->rrq_levels;
494#ifdef DEBUG_REMOTE_MEMORY
495 printf("REMOTE_release_request free request %x\n", request);
496#endif
497 delete request;
498 if (!(request = next))
499 break;
500 }
501}
502
503
504void REMOTE_reset_request( Rrq* request, RMessage* active_message)

Callers 2

release_requestFunction · 0.85
release_requestFunction · 0.85

Calls 2

REMOTE_release_messagesFunction · 0.85
beginMethod · 0.45

Tested by

no test coverage detected