X-Git-Url: https://ginac.de/CLN/cln.git//cln.git?a=blobdiff_plain;f=src%2Finteger%2Fconv%2Fcl_I_from_L.cc;h=9a57c277402029bf5fc7f6cc314ac48924755f52;hb=e52830748240df6b0ab51d8a78243c88132f6c75;hp=119bd2252ca60980bd86bfd9b98084825814df37;hpb=850abfde7f0d985ba01526c346bcd0d733562943;p=cln.git diff --git a/src/integer/conv/cl_I_from_L.cc b/src/integer/conv/cl_I_from_L.cc index 119bd22..9a57c27 100644 --- a/src/integer/conv/cl_I_from_L.cc +++ b/src/integer/conv/cl_I_from_L.cc @@ -23,6 +23,12 @@ cl_private_thing cl_I_constructor_from_L (sint32 wert) // test enthält die Bits, die nicht in den Fixnum-Wert >= 0 reinpassen. if ((test == 0) || (test == (uint32)minus_bit(cl_value_len-1))) { return (cl_private_thing)(cl_combine(cl_FN_tag,wert)); } + #if (intDsize==64) + // trivially generate a Bignum of length one digit + var cl_heap_bignum* ptr = allocate_bignum(1); + arrayLSref(ptr->data,1,0) = wert; + return (cl_private_thing)(ptr); + #else // Bignum erzeugen: // (dessen Länge bn_minlength <= n <= ceiling(32/intDsize) erfüllt) if (bn_minlength == ceiling(32,intDsize)) { @@ -101,6 +107,8 @@ cl_private_thing cl_I_constructor_from_L (sint32 wert) #endif #undef IF_LENGTH } + #endif + NOTREACHED } } // namespace cln