summaryrefslogtreecommitdiffstats
path: root/mpi-patches/add-mp-set-intptr
diff options
context:
space:
mode:
Diffstat (limited to 'mpi-patches/add-mp-set-intptr')
-rw-r--r--mpi-patches/add-mp-set-intptr77
1 files changed, 0 insertions, 77 deletions
diff --git a/mpi-patches/add-mp-set-intptr b/mpi-patches/add-mp-set-intptr
deleted file mode 100644
index cbaa9bf4..00000000
--- a/mpi-patches/add-mp-set-intptr
+++ /dev/null
@@ -1,77 +0,0 @@
-Index: mpi-1.8.6/mpi.c
-===================================================================
---- mpi-1.8.6.orig/mpi.c 2015-02-07 19:32:35.248929450 -0800
-+++ mpi-1.8.6/mpi.c 2015-02-07 19:32:37.136895701 -0800
-@@ -526,6 +526,59 @@
-
- /* }}} */
-
-+mp_err mp_set_intptr(mp_int *mp, int_ptr_t z)
-+{
-+ int_ptr_t v = z > 0 ? z : -z;
-+
-+ if (sizeof z > sizeof (mp_digit)) {
-+ int ix, shift;
-+ const int nd = (sizeof v + sizeof (mp_digit) - 1) / sizeof (mp_digit);
-+
-+ ARGCHK(mp != NULL, MP_BADARG);
-+
-+ mp_zero(mp);
-+
-+ if(z == 0)
-+ return MP_OKAY; /* shortcut for zero */
-+
-+ s_mp_grow(mp, nd);
-+
-+ USED(mp) = nd;
-+
-+ for (ix = 0, shift = 0; ix < nd; ix++, shift += MP_DIGIT_BIT)
-+ {
-+ DIGIT(mp, ix) = (v >> shift) & MP_DIGIT_MAX;
-+ }
-+ } else {
-+ mp_set(mp, v);
-+ }
-+
-+ if(z < 0)
-+ SIGN(mp) = MP_NEG;
-+
-+ return MP_OKAY;
-+}
-+
-+/*
-+ * No checks here: assumes that the mp is in range!
-+ */
-+mp_err mp_get_intptr(mp_int *mp, int_ptr_t *z)
-+{
-+ int_ptr_t out = 0;
-+
-+#if MP_DIGIT_SIZE < SIZEOF_PTR
-+ int ix;
-+ int nd = USED(mp);
-+ for (ix = 0; ix < nd; ix++, out <<= MP_DIGIT_BIT)
-+ out = DIGIT(mp, ix);
-+#else
-+ out = DIGIT(mp, 0);
-+#endif
-+
-+ *z = (SIGN(mp) == MP_NEG) ? -out : out;
-+ return MP_OKAY;
-+}
-+
- /*------------------------------------------------------------------------*/
- /* {{{ Digit arithmetic */
-
-Index: mpi-1.8.6/mpi.h
-===================================================================
---- mpi-1.8.6.orig/mpi.h 2015-02-07 19:32:35.236929664 -0800
-+++ mpi-1.8.6/mpi.h 2015-02-07 19:32:37.136895701 -0800
-@@ -94,6 +94,8 @@
- void mp_zero(mp_int *mp);
- void mp_set(mp_int *mp, mp_digit d);
- mp_err mp_set_int(mp_int *mp, long z);
-+mp_err mp_set_intptr(mp_int *mp, int_ptr_t z);
-+mp_err mp_get_intptr(mp_int *mp, int_ptr_t *z);
-
- /*------------------------------------------------------------------------*/
- /* Single digit arithmetic */