| 1180 | #define SET_OBJECT(rdb, object, id) rdb->rdb_port->setHandle(object, id) |
| 1181 | |
| 1182 | inline static void defer_packet(rem_port* port, PACKET* packet, bool sent = false) |
| 1183 | { |
| 1184 | fb_assert(port->port_flags & PORT_lazy); |
| 1185 | fb_assert(port->port_deferred_packets); |
| 1186 | |
| 1187 | // hvlad: passed packet often is rdb->rdb_packet and therefore can be |
| 1188 | // changed inside clear_queue. To not confuse caller we must preserve |
| 1189 | // packet content |
| 1190 | |
| 1191 | rem_que_packet p; |
| 1192 | p.packet = *packet; |
| 1193 | p.sent = sent; |
| 1194 | |
| 1195 | clear_queue(port); |
| 1196 | *packet = p.packet; |
| 1197 | |
| 1198 | // don't use string references in P_RESP structure copied from another packet |
| 1199 | memset(&p.packet.p_resp, 0, sizeof(p.packet.p_resp)); |
| 1200 | port->port_deferred_packets->add(p); |
| 1201 | } |
| 1202 | |
| 1203 | IAttachment* RProvider::attach(CheckStatusWrapper* status, const char* filename, unsigned int dpb_length, |
| 1204 | const unsigned char* dpb, bool loopback) |
no test coverage detected