mirror of https://github.com/python/cpython
Merge from 3.3.
This commit is contained in:
commit
ae01a8bcdf
|
@ -4421,21 +4421,22 @@ mpd_qfma(mpd_t *result, const mpd_t *a, const mpd_t *b, const mpd_t *c,
|
|||
const mpd_context_t *ctx, uint32_t *status)
|
||||
{
|
||||
uint32_t workstatus = 0;
|
||||
const mpd_t *cc = c;
|
||||
mpd_t *cc = NULL;
|
||||
|
||||
if (result == c) {
|
||||
if ((cc = mpd_qncopy(c)) == NULL) {
|
||||
mpd_seterror(result, MPD_Malloc_error, status);
|
||||
return;
|
||||
}
|
||||
c = cc;
|
||||
}
|
||||
|
||||
_mpd_qmul(result, a, b, ctx, &workstatus);
|
||||
if (!(workstatus&MPD_Invalid_operation)) {
|
||||
mpd_qadd(result, result, cc, ctx, &workstatus);
|
||||
mpd_qadd(result, result, c, ctx, &workstatus);
|
||||
}
|
||||
|
||||
if (cc != c) mpd_del((mpd_t *)cc);
|
||||
if (cc) mpd_del(cc);
|
||||
*status |= workstatus;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue