pike.git / src / bignum.c

version» Context lines:

pike.git/src/bignum.c:78:      PMOD_EXPORT void convert_svalue_to_bignum(struct svalue *s)   {    push_svalue(s);    convert_stack_top_to_bignum();    free_svalue(s);    *s=sp[-1];    sp--;    dmalloc_touch_svalue(sp);   } -  - #ifdef INT64 - static void bootstrap_push_int64 (INT64 i) - { -  if(i == DO_NOT_WARN((INT_TYPE)i)) -  { -  push_int(DO_NOT_WARN((INT_TYPE)i)); -  } -  else -  Pike_fatal ("Failed to convert large integer (Gmp.bignum not loaded).\n"); - } -  - PMOD_EXPORT void (*push_int64) (INT64) = bootstrap_push_int64; - PMOD_EXPORT int (*int64_from_bignum) (INT64 *, struct object *) = NULL; - PMOD_EXPORT void (*reduce_stack_top_bignum) (void) = NULL; - #endif -  - PMOD_EXPORT void (*push_ulongest) (unsigned LONGEST) = NULL; - PMOD_EXPORT int (*ulongest_from_bignum) (unsigned LONGEST *, -  struct object *) = NULL; -  - PMOD_EXPORT int (*mpz_from_svalue)(MP_INT *, struct svalue *) = NULL; - PMOD_EXPORT void (*push_bignum)(MP_INT *) = NULL; -  - PMOD_EXPORT void hook_in_gmp_funcs ( - #ifdef INT64 -  void (*push_int64_val)(INT64), -  int (*int64_from_bignum_val) (INT64 *, struct object *), -  void (*reduce_stack_top_bignum_val) (void), - #endif -  void (*push_ulongest_val) (unsigned LONGEST), -  int (*ulongest_from_bignum_val) (unsigned LONGEST *, struct object *), -  int (*mpz_from_svalue_val)(MP_INT *, struct svalue *), -  void (*push_bignum_val)(MP_INT *)) - { -  /* Assigning the pointers above directly from the Gmp module doesn't -  * work in some cases, e.g. NT. */ - #ifdef INT64 -  push_int64 = push_int64_val ? push_int64_val : bootstrap_push_int64; -  int64_from_bignum = int64_from_bignum_val; -  reduce_stack_top_bignum = reduce_stack_top_bignum_val; - #endif -  push_ulongest = push_ulongest_val; -  ulongest_from_bignum = ulongest_from_bignum_val; -  mpz_from_svalue = mpz_from_svalue_val; -  push_bignum = push_bignum_val; - } +