diff --git a/mps/code/misc.h b/mps/code/misc.h index 3d0f259ff72..c07647f54db 100644 --- a/mps/code/misc.h +++ b/mps/code/misc.h @@ -156,13 +156,12 @@ typedef const struct SrcIdStruct { * * Use these values for unused pointer, size closure arguments and * check them in the callback or visitor. - * - * We use PointerAdd rather than a cast to avoid "warning C4306: 'type - * cast' : conversion from 'unsigned int' to 'Pointer' of greater - * size" on platform w3i6mv. + * + * Ensure that they have high bits set on 64-bit platforms for maximum + * unusability. */ -#define UNUSED_POINTER PointerAdd(0, 0xB60405ED) /* PointeR UNUSED */ -#define UNUSED_SIZE ((Size)0x520405ED) /* SiZe UNUSED */ +#define UNUSED_POINTER (Pointer)((Word)~0xFFFFFFFF | (Word)0xB60405ED) /* PointeR UNUSED */ +#define UNUSED_SIZE ((Size)~0xFFFFFFFF | (Size)0x520405ED) /* SiZe UNUSED */ /* PARENT -- parent structure diff --git a/mps/code/mpscmv.h b/mps/code/mpscmv.h index aeb163aec4a..5c6522ae1e9 100644 --- a/mps/code/mpscmv.h +++ b/mps/code/mpscmv.h @@ -9,8 +9,9 @@ #include "mps.h" -#define mps_mv_free_size(pool) (mps_pool_free_size(pool)) -#define mps_mv_size(pool) (mps_pool_total_size(pool)) +#define mps_mv_free_size mps_pool_free_size +#define mps_mv_size mps_pool_total_size + extern mps_class_t mps_class_mv(void); extern mps_class_t mps_class_mv_debug(void); diff --git a/mps/code/mpscmv2.h b/mps/code/mpscmv2.h index 8586a639901..8925d38d3b3 100644 --- a/mps/code/mpscmv2.h +++ b/mps/code/mpscmv2.h @@ -1,27 +1,24 @@ /* mpscmv2.h: MEMORY POOL SYSTEM CLASS "MVT" * * $Id$ - * Copyright (c) 2001 Ravenbrook Limited. See end of file for license. + * Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license. + * + * The MVT pool class used to be known as "MV2" in some places: this + * header provides backwards compatibility for prograns that included + * it under its old name. */ #ifndef mpscmv2_h #define mpscmv2_h -#include "mps.h" - -extern mps_class_t mps_class_mvt(void); - -/* The mvt pool class supports two extensions to the pool protocol: - size and free_size. */ -extern size_t mps_mvt_free_size(mps_pool_t mps_pool); -extern size_t mps_mvt_size(mps_pool_t mps_pool); +#include "mpscmvt.h" #endif /* mpscmv2_h */ /* C. COPYRIGHT AND LICENSE * - * Copyright (C) 2001-2002 Ravenbrook Limited . + * Copyright (C) 2001-2014 Ravenbrook Limited . * All rights reserved. This is an open source license. Contact * Ravenbrook for commercial licensing options. * diff --git a/mps/code/mpscmvff.h b/mps/code/mpscmvff.h index ec1eb22eff9..ca1fbcae697 100644 --- a/mps/code/mpscmvff.h +++ b/mps/code/mpscmvff.h @@ -19,8 +19,9 @@ extern const struct mps_key_s _mps_key_mvff_first_fit; #define MPS_KEY_MVFF_FIRST_FIT (&_mps_key_mvff_first_fit) #define MPS_KEY_MVFF_FIRST_FIT_FIELD b -#define mps_mvff_free_size(pool) (mps_pool_free_size(pool)) -#define mps_mvff_size(pool) (mps_pool_total_size(pool)) +#define mps_mvff_free_size mps_pool_free_size +#define mps_mvff_size mps_pool_total_size + extern mps_class_t mps_class_mvff(void); extern mps_class_t mps_class_mvff_debug(void); diff --git a/mps/code/mpscmvt.h b/mps/code/mpscmvt.h index 82792eb3f55..9490d5ffb77 100644 --- a/mps/code/mpscmvt.h +++ b/mps/code/mpscmvt.h @@ -16,30 +16,10 @@ extern const struct mps_key_s _mps_key_mvt_frag_limit; #define MPS_KEY_MVT_FRAG_LIMIT (&_mps_key_mvt_frag_limit) #define MPS_KEY_MVT_FRAG_LIMIT_FIELD d -/* The mvt pool class has five extra parameters to mps_pool_create: - * mps_res_t mps_pool_create(mps_pool_t * pool, mps_arena_t arena, - * mps_class_t mvt_class, - * size_t minimum_size, - * size_t mean_size, - * size_t maximum_size, - * mps_count_t reserve_depth - * mps_count_t fragmentation_limit); - * minimum_, mean_, and maximum_size are the mimimum, mean, and - * maximum (typical) size of objects expected to be allocated in the - * pool. reserve_depth is a measure of the expected hysteresis of the - * object population. fragmentation_limit is a percentage (between 0 - * and 100): if the free space managed by the pool exceeds the - * specified percentage, the pool will resort to a "first fit" - * allocation policy. - */ extern mps_class_t mps_class_mvt(void); -/* The mvt pool class formerly supported two extensions to the pool - protocol: size and free_size. These are deprecated in favour of the - generic pool function. */ - -#define mps_mvt_free_size(pool) (mps_pool_free_size(pool)) -#define mps_mvt_size(pool) (mps_pool_total_size(pool)) +#define mps_mvt_free_size mps_pool_free_size +#define mps_mvt_size mps_pool_total_size #endif /* mpscmvt_h */ diff --git a/mps/code/poolabs.c b/mps/code/poolabs.c index 16847a5a746..a9dde8f4f74 100644 --- a/mps/code/poolabs.c +++ b/mps/code/poolabs.c @@ -681,7 +681,7 @@ Size PoolNoSize(Pool pool) { AVERT(Pool, pool); NOTREACHED; - return 0; + return UNUSED_SIZE; }