Created
October 6, 2011 19:15
-
-
Save booo/1268348 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| diff -urN libspatialindex-1.6.1-orig/include/tools/rand48.h libspatialindex-1.6.1/include/tools/rand48.h | |
| --- libspatialindex-1.6.1-orig/include/tools/rand48.h 2010-03-09 03:58:29.000000000 +0100 | |
| +++ libspatialindex-1.6.1/include/tools/rand48.h 2011-05-16 13:51:15.000000000 +0200 | |
| @@ -1,11 +1,33 @@ | |
| #pragma once | |
| -extern void srand48(long seed); | |
| -extern unsigned short *seed48(unsigned short xseed[3]); | |
| -extern long nrand48(unsigned short xseed[3]); | |
| -extern long mrand48(void); | |
| -extern long lrand48(void); | |
| -extern void lcong48(unsigned short p[7]); | |
| -extern long jrand48(unsigned short xseed[3]); | |
| -extern double erand48(unsigned short xseed[3]); | |
| -extern double drand48(void); | |
| +#ifndef __THROW | |
| +/* copy-pasted from sys/cdefs.h */ | |
| +/* GCC can always grok prototypes. For C++ programs we add throw() | |
| + to help it optimize the function calls. But this works only with | |
| + gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions | |
| + as non-throwing using a function attribute since programs can use | |
| + the -fexceptions options for C code as well. */ | |
| +# if !defined __cplusplus && __GNUC_PREREQ (3, 3) | |
| +# define __THROW __attribute__ ((__nothrow__)) | |
| +# define __NTH(fct) __attribute__ ((__nothrow__)) fct | |
| +# else | |
| +# if defined __cplusplus && __GNUC_PREREQ (2,8) | |
| +# define __THROW throw () | |
| +# define __NTH(fct) fct throw () | |
| +# else | |
| +# define __THROW | |
| +# define __NTH(fct) fct | |
| +# endif | |
| +# endif | |
| + | |
| +#endif | |
| + | |
| +extern void srand48(long seed) __THROW; | |
| +extern unsigned short *seed48(unsigned short xseed[3]) __THROW; | |
| +extern long nrand48(unsigned short xseed[3]) __THROW; | |
| +extern long mrand48(void) __THROW; | |
| +extern long lrand48(void) __THROW; | |
| +extern void lcong48(unsigned short p[7]) __THROW; | |
| +extern long jrand48(unsigned short xseed[3]) __THROW; | |
| +extern double erand48(unsigned short xseed[3]) __THROW; | |
| +extern double drand48(void) __THROW; | |
| diff -urN libspatialindex-1.6.1-orig/src/tools/rand48.cc libspatialindex-1.6.1/src/tools/rand48.cc | |
| --- libspatialindex-1.6.1-orig/src/tools/rand48.cc 2009-10-19 20:09:28.000000000 +0200 | |
| +++ libspatialindex-1.6.1/src/tools/rand48.cc 2011-05-16 13:51:34.000000000 +0200 | |
| @@ -62,7 +62,7 @@ | |
| } | |
| extern void | |
| -srand48(long seed) | |
| +srand48(long seed) __THROW | |
| { | |
| __rand48_Seed[0] = RAND48_SEED_0; | |
| __rand48_Seed[1] = (unsigned short) seed; | |
| @@ -74,7 +74,7 @@ | |
| } | |
| extern unsigned short * | |
| -seed48(unsigned short xseed[3]) | |
| +seed48(unsigned short xseed[3]) __THROW | |
| { | |
| static unsigned short sseed[3]; | |
| @@ -92,27 +92,27 @@ | |
| } | |
| extern long | |
| -nrand48(unsigned short xseed[3]) | |
| +nrand48(unsigned short xseed[3]) __THROW | |
| { | |
| _dorand48(xseed); | |
| return ((long) xseed[2] << 15) + ((long) xseed[1] >> 1); | |
| } | |
| extern long | |
| -mrand48(void) | |
| +mrand48(void) __THROW | |
| { | |
| _dorand48(__rand48_Seed); | |
| return ((long) __rand48_Seed[2] << 16) + (long) __rand48_Seed[1]; | |
| } | |
| extern long | |
| -lrand48(void) | |
| +lrand48(void) __THROW | |
| { | |
| _dorand48(__rand48_Seed); | |
| return ((long) __rand48_Seed[2] << 15) + ((long) __rand48_Seed[1] >> 1); | |
| } | |
| extern void | |
| -lcong48(unsigned short p[7]) | |
| +lcong48(unsigned short p[7]) __THROW | |
| { | |
| __rand48_Seed[0] = p[0]; | |
| __rand48_Seed[1] = p[1]; | |
| @@ -123,14 +123,14 @@ | |
| __rand48_Add = p[6]; | |
| } | |
| extern long | |
| -jrand48(unsigned short xseed[3]) | |
| +jrand48(unsigned short xseed[3]) __THROW | |
| { | |
| _dorand48(xseed); | |
| return ((long) xseed[2] << 16) + (long) xseed[1]; | |
| } | |
| extern double | |
| -erand48(unsigned short xseed[3]) | |
| +erand48(unsigned short xseed[3]) __THROW | |
| { | |
| _dorand48(xseed); | |
| return ldexp((double) xseed[0], -48) + | |
| @@ -139,7 +139,7 @@ | |
| } | |
| extern double | |
| -drand48(void) | |
| +drand48(void) __THROW | |
| { | |
| return erand48(__rand48_Seed); | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment