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

Function internal_post

src/dsql/errd.cpp:188–209  ·  view source on GitHub ↗

internal_post @brief Post an error, copying any potentially transient data before we punt. @param tmp_status @param **/

Source from the content-addressed store, hash-verified

186
187 **/
188static void internal_post(const Arg::StatusVector& v)
189{
190 // start building resulting vector
191 Jrd::FbStatusVector* status_vector = JRD_get_thread_data()->tdbb_status_vector;
192 Arg::StatusVector final(status_vector->getErrors());
193 if (final.length() == 0)
194 {
195 // this is a blank status vector
196 final << Arg::Gds(isc_dsql_error);
197 }
198
199 // check for duplicated error code
200 if (fb_utils::subStatus(final.value(), final.length(), v.value(), v.length()) == ~0u)
201 {
202 // no dup - append new vector to old one
203 final << v;
204 }
205
206 // save & punt
207 status_vector->setErrors2(final.length(), final.value());
208 ERRD_punt();
209}
210
211
212/**

Callers 1

ERRD_postFunction · 0.85

Calls 8

JRD_get_thread_dataFunction · 0.85
GdsClass · 0.85
subStatusFunction · 0.85
ERRD_puntFunction · 0.85
getErrorsMethod · 0.45
lengthMethod · 0.45
valueMethod · 0.45
setErrors2Method · 0.45

Tested by

no test coverage detected