Replacement for stddef.h in the JS interpreter which defines ptrdiff_t to be 32 bits rather than 16 bits on Win16 only

git-svn-id: svn://10.0.0.236/trunk@3559 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
fur 1998-06-09 21:05:54 +00:00
parent c2b5ee5c2b
commit c4f601320e

41
mozilla/js/src/jsstddef.h Normal file
View File

@ -0,0 +1,41 @@
/*stddef inclusion here to first declare ptrdif as a signed long instead of a signed int*/
#ifdef _WINDOWS
# ifndef XP_WIN
# define XP_WIN
# endif
#if defined(_WIN32) || defined(WIN32)
# ifndef XP_WIN32
# define XP_WIN32
# endif
#else
# ifndef XP_WIN16
# define XP_WIN16
# endif
#endif
#endif
#ifdef XP_WIN16
#ifndef _PTRDIFF_T_DEFINED
typedef long ptrdiff_t;
/*
* The Win16 compiler treats pointer differences as 16-bit signed values.
* This macro allows us to treat them as 17-bit signed values, stored in
* a 32-bit type.
*/
#define PTRDIFF(p1, p2, type) \
((((unsigned long)(p1)) - ((unsigned long)(p2))) / sizeof(type))
#define _PTRDIFF_T_DEFINED
#endif /*_PTRDIFF_T_DEFINED*/
#else /*WIN16*/
#define PTRDIFF(p1, p2, type) \
((p1) - (p2))
#endif
#include <stddef.h>