tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

static_init.c (1444B)


      1 /* Copyright 2025 Google Inc. All Rights Reserved.
      2 
      3   Distributed under MIT license.
      4   See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
      5 */
      6 
      7 #include "static_init.h"
      8 
      9 #include "../common/platform.h"
     10 #include "../common/static_init.h"
     11 
     12 #if (BROTLI_STATIC_INIT != BROTLI_STATIC_INIT_NONE)
     13 #include "../common/dictionary.h"
     14 #include "prefix.h"
     15 #endif
     16 
     17 #if defined(__cplusplus) || defined(c_plusplus)
     18 extern "C" {
     19 #endif
     20 
     21 #if (BROTLI_STATIC_INIT != BROTLI_STATIC_INIT_NONE)
     22 static BROTLI_BOOL DoBrotliDecoderStaticInit(void) {
     23  BROTLI_BOOL ok = BrotliDecoderInitCmdLut(kCmdLut);
     24  if (!ok) return BROTLI_FALSE;
     25  return BROTLI_TRUE;
     26 }
     27 #endif  /* BROTLI_STATIC_INIT_NONE */
     28 
     29 #if (BROTLI_STATIC_INIT == BROTLI_STATIC_INIT_EARLY)
     30 static BROTLI_BOOL kEarlyInitOk;
     31 static __attribute__((constructor)) void BrotliDecoderStaticInitEarly(void) {
     32  kEarlyInitOk = DoBrotliDecoderStaticInit();
     33 }
     34 #elif (BROTLI_STATIC_INIT == BROTLI_STATIC_INIT_LAZY)
     35 static BROTLI_BOOL kLazyInitOk;
     36 void BrotliDecoderLazyStaticInitInner(void) {
     37  kLazyInitOk = DoBrotliDecoderStaticInit();
     38 }
     39 #endif  /* BROTLI_STATIC_INIT_EARLY */
     40 
     41 BROTLI_BOOL BrotliDecoderEnsureStaticInit(void) {
     42 #if (BROTLI_STATIC_INIT == BROTLI_STATIC_INIT_NONE)
     43  return BROTLI_TRUE;
     44 #elif (BROTLI_STATIC_INIT == BROTLI_STATIC_INIT_EARLY)
     45  return kEarlyInitOk;
     46 #else
     47  return kLazyInitOk;
     48 #endif
     49 }
     50 
     51 #if defined(__cplusplus) || defined(c_plusplus)
     52 }  /* extern "C" */
     53 #endif