/* -*-c-*-
*
- * $Id: mp-mem.c,v 1.7 2004/04/08 01:36:15 mdw Exp $
+ * $Id: mp-mem.c,v 1.8 2004/04/08 16:17:32 mdw Exp $
*
* Memory management for multiprecision numbers
*
* (c) 1999 Straylight/Edgeware
*/
-/*----- Licensing notice --------------------------------------------------*
+/*----- Licensing notice --------------------------------------------------*
*
* This file is part of Catacomb.
*
* it under the terms of the GNU Library General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
- *
+ *
* Catacomb is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Library General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Library General Public
* License along with Catacomb; if not, write to the Free
* Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
mp *mp_createsecure(size_t sz)
{
- mp *m = CREATE(mp);
+ mp *m = CREATE(mp);
m->v = mpalloc(MPARENA_SECURE, sz);
m->vl = m->v + sz;
m->sz = sz;
m->v = v;
m->vl = vl;
m->sz = vl - v;
+ m->a = MPARENA_GLOBAL;
m->f = MP_CONST;
m->ref = 1;
}
* Returns: ---
*
* Use: Changes an integer's size. The length and value are not
- * changed. It is an error to
+ * changed. It is an error to
*/
void mp_resize(mp *m, size_t sz) { MP_RESIZE(m, sz); }
/* --- Otherwise check whether the destination is suitable --- */
if (m->ref > 1 || (m->f & MP_CONST) ||
- sz > m->sz || !((f & ~m->f) & MP_BURN)) {
+ sz > m->sz || ((f & ~m->f) & MP_BURN)) {
/* --- No -- allocate a new buffer --- *
*
* buffer, or (b) the old buffer is secure and I'm not allowed to
* discard the old contents.
*/
-
+
mparena *a;
mpw *v;