X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=include%2Fyaz%2Fnmem.h;h=13a3a8aef69d8fa4846dea513589c4e039cc2504;hp=8e49fee474f6a38816a63747940ab1d99b20fe3d;hb=fabec8cc81c901ee77f71e3d8667494b57507e7d;hpb=10c562bc3ccaaa440189f279ca562327612f87c6 diff --git a/include/yaz/nmem.h b/include/yaz/nmem.h index 8e49fee..13a3a8a 100644 --- a/include/yaz/nmem.h +++ b/include/yaz/nmem.h @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2009 Index Data. + * Copyright (C) 1995-2010 Index Data. * All rights reserved. * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -43,20 +43,23 @@ YAZ_BEGIN_CDECL /** \brief NMEM handle (an opaque pointer to memory) */ typedef struct nmem_control *NMEM; -#ifdef _MSC_VER -#define NMEM_64 0 -#endif - /** \brief Set to 1 if YAZ BER integer is 64-bit ; 0 otherwise */ #ifndef NMEM_64 #define NMEM_64 1 #endif #if NMEM_64 -/** \brief BER/utility integer (64-bit or more) */ + +#ifdef _MSC_VER +/* Visual Studio. 6.0 and later supports this */ +typedef __int64 nmem_int_t; +#define NMEM_INT_PRINTF "%I64d" +#else +/* C99 */ typedef long long int nmem_int_t; -/** \brief printf format for nmem_int_t type */ #define NMEM_INT_PRINTF "%lld" +#endif + #else /** \brief BER/utility integer (32-bit on most platforms) */ typedef int nmem_int_t; @@ -75,7 +78,7 @@ YAZ_EXPORT void nmem_reset(NMEM n); /** \brief returns size in bytes of memory for NMEM handle \returns number of bytes */ -YAZ_EXPORT int nmem_total(NMEM n); +YAZ_EXPORT size_t nmem_total(NMEM n); /** \brief allocates string on NMEM handle (similar strdup) \param mem HNEM handle @@ -153,7 +156,7 @@ YAZ_EXPORT void nmem_destroy(NMEM n); \param size number of bytes to be allocated \returns pointer to allocated memory */ -YAZ_EXPORT void *nmem_malloc(NMEM n, int size); +YAZ_EXPORT void *nmem_malloc(NMEM n, size_t size); YAZ_END_CDECL