Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  include_header.patch   Sprache: unbekannt

 
--- /dev/null
+++ dtoa/include/dtoa.h
@@ -0,0 +1,1 @@
+extern "C" double strtod_nolocale(const char *s00, char **se);
--- dtoa/src/dtoa.c.orig
+++ dtoa/src/dtoa.c
@@ -268,7 +268,7 @@ #ifndef PRIVATE_MEM
 #define PRIVATE_MEM 2304
 #endif
 #define PRIVATE_mem ((PRIVATE_MEM+sizeof(double)-1)/sizeof(double))
-static double private_mem[PRIVATE_mem], *pmem_next = private_mem;
+static thread_local double private_mem[PRIVATE_mem], *pmem_next = private_mem;
 #endif
 
 #undef IEEE_Arith
@@ -1502,9 +1502,7 @@ static unsigned int maxthreads = 0;
 #define Kmax 7
 
 #ifdef __cplusplus
-extern "C" double strtod(const char *s00, char **se);
-extern "C" char *dtoa(double d, int mode, int ndigits,
-   int *decpt, int *sign, char **rve);
+extern "C" double strtod_nolocale(const char *s00, char **se);
 #endif
 
  struct
@@ -1521,7 +1519,7 @@ ThInfo {
  Bigint *P5s;
  } ThInfo;
 
- static ThInfo TI0;
+ static thread_local ThInfo TI0;
 
 #ifdef MULTIPLE_THREADS
  static ThInfo *TI1;
@@ -1529,7 +1527,7 @@ #ifdef MULTIPLE_THREADS
  static ThInfo *TI1;
  static int TI0_used;
 
- void
+ static void
 set_max_dtoa_threads(unsigned int n)
 {
  size_t L;
@@ -2717,7 +2715,7 @@ enum { /* rounding values: same as FLT_ROUNDS */
  Round_down = 3
  };
 
- void
+ static void
 gethex( const char **sp, U *rvp, int rounding, int sign MTd)
 {
  Bigint *b;
@@ -3429,7 +3427,7 @@ retlow1:
 #endif /* NO_STRTOD_BIGCOMP */
 
  double
-strtod(const char *s00, char **se)
+strtod_nolocale(const char *s00, char **se)
 {
  int bb2, bb5, bbe, bd2, bd5, bbbits, bs2, c, e, e1;
  int esign, i, j, k, nd, nd0, nf, nz, nz0, nz1, sign;
@@ -4851,7 +4849,7 @@ strtod_nolocale(const char *s00, char **se)
  }
 
 #ifndef MULTIPLE_THREADS
- static char *dtoa_result;
+ static thread_local char *dtoa_result;
 #endif
 
  static char *
@@ -4902,7 +4900,7 @@ nrv_alloc(const char *s, char *s0, size_t s0len, char **rve, int n MTd)
  * when MULTIPLE_THREADS is not defined.
  */
 
- void
+ static void
 freedtoa(char *s)
 {
 #ifdef MULTIPLE_THREADS
@@ -4951,7 +4949,7 @@ freedtoa(char *s)
  *    calculation.
  */
 
- char *
+ static char *
 dtoa_r(double dd, int mode, int ndigits, int *decpt, int *sign, char **rve, char *buf, size_t blen)
 {
  /* Arguments ndigits, decpt, sign are similar to those
@@ -6184,8 +6182,8 @@ dtoa_r(double dd, int mode, int ndigits, int *decpt, int *sign, char **rve, char
  return buf;
  }
 
- char *
-dtoa(double dd, int mode, int ndigits, int *decpt, int *sign, char **rve)
+ static char *
+dtoa_nolocale(double dd, int mode, int ndigits, int *decpt, int *sign, char **rve)
 {
  /* Sufficient space is allocated to the return value
   to hold the suppressed trailing zeros.

[ Dauer der Verarbeitung: 0.18 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge