99 return otherType.isVoid || otherType.isUndefined;
118 return otherType.isVoid || otherType.isUndefined;
142 if (otherType.isDouble || otherType.isInt64 || otherType.isString)
145 return otherType.toInt (otherData) ==
data.intValue;
175 if (otherType.isDouble || otherType.isString)
178 return otherType.toInt64 (otherData) ==
data.int64Value;
208 return std::abs (otherType.toDouble (otherData) -
data.doubleValue) < std::numeric_limits<double>::epsilon();
238 return otherType.toBool (otherData) ==
data.boolValue;
284 const size_t len =
s->getNumBytesAsUTF8() + 1;
286 s->copyToUTF8 (temp, len);
289 output.
write (temp, len);
317 return d->clone().get();
334 return otherType.toObject (otherData) ==
data.objectValue;
369 auto* otherArray = otherType.toArray (otherData);
370 return thisArray == otherArray || (thisArray !=
nullptr && otherArray !=
nullptr && *otherArray == *thisArray);
381 for (
auto&
i : *array)
382 arrayCopy.
add (
i.clone());
385 return var (arrayCopy);
393 buffer.writeCompressedInt (array->size());
395 for (
auto&
i : *array)
396 i.writeToStream (buffer);
433 const MemoryBlock*
const otherBlock = otherType.toBinary (otherData);
434 return otherBlock !=
nullptr && *otherBlock == *
data.binaryValue;
441 output << *
data.binaryValue;
462 return otherType.isMethod && otherData.methodValue ==
data.methodValue;
546 if (
object !=
nullptr)
547 object->incReferenceCount();
580 std::swap (
type, other.type);
581 std::swap (
value, other.value);
604var& var::operator= (
var&& other)
noexcept
636 return type->equals (
value, other.value, *other.type);
646 return type == other.type;
659 auto diff =
static_cast<double> (v1) -
static_cast<double> (
v2);
660 return diff == 0 ? 0 : (
diff < 0 ? -1 : 1);
678 return type->clone (*
this);
685 return o->getProperty (propertyName);
690const var& var::operator[] (
const char*
const propertyName)
const
692 return operator[] (
Identifier (propertyName));
698 return o->getProperties().getWithDefault (propertyName, defaultReturnValue);
700 return defaultReturnValue;
706 return o->hasProperty (propertyName);
736 var args[] = { arg1, arg2 };
742 var args[] = { arg1, arg2, arg3 };
748 var args[] = { arg1, arg2, arg3, arg4 };
754 var args[] = { arg1, arg2, arg3, arg4, arg5 };
762 return array->size();
767const var& var::operator[] (
int arrayIndex)
const
775 return array->getReference (arrayIndex);
778var& var::operator[] (
int arrayIndex)
786 return array->getReference (arrayIndex);
811 array->remove (index);
827 return array->indexOf (
n);
855 mo.writeFromInputStream (input, numBytes - 1);
856 return var (
mo.toUTF8());
865 const int numRead = input.
read (mb.
getData(), numBytes - 1);
875 auto* destArray =
v.convertToArray();
897#if JUCE_ALLOW_STATIC_NULL_VARIABLES
#define noexcept
Definition DistrhoDefines.h:72
uint8_t a
Definition Spc_Cpu.h:141
CAdPlugDatabase::CRecord::RecordType type
Definition adplugdb.cpp:93
int64_t int64
Definition basics.h:91
static String charToString(water_uchar character)
Definition String.cpp:311
static String toHexString(int number)
Definition String.cpp:1830
Definition juce_Array.h:56
void ensureStorageAllocated(int minNumElements)
Definition juce_Array.h:1065
void add(const ElementType &newElement)
Definition juce_Array.h:418
Definition juce_DynamicObject.h:40
Definition juce_HeapBlock.h:87
Definition juce_Identifier.h:39
Definition juce_MemoryBlock.h:33
void * getData() noexcept
Definition juce_MemoryBlock.h:91
void setSize(const size_t newSize, bool initialiseNewSpaceToZero=false)
Definition juce_MemoryBlock.cpp:115
Definition juce_MemoryOutputStream.h:36
Definition juce_OutputStream.h:38
virtual bool writeDouble(double value)
Definition juce_OutputStream.cpp:169
virtual bool write(const void *dataToWrite, size_t numberOfBytes)=0
virtual bool writeCompressedInt(int value)
Definition juce_OutputStream.cpp:121
virtual bool writeByte(char byte)
Definition juce_OutputStream.cpp:83
virtual bool writeInt64(int64 value)
Definition juce_OutputStream.cpp:143
virtual bool writeInt(int value)
Definition juce_OutputStream.cpp:109
Definition juce_ReferenceCountedObject.h:66
ReferenceCountedObject()=default
void incReferenceCount() noexcept
Definition juce_ReferenceCountedObject.h:74
Definition juce_StringArray.h:35
Definition juce_String.h:53
int compare(const String &other) const noexcept
Definition juce_String.cpp:596
Definition juce_Variant.h:42
static var undefined() noexcept
Definition juce_Variant.cpp:550
bool isMethod() const noexcept
Definition juce_Variant.cpp:563
void insert(int index, const var &value)
Definition juce_Variant.cpp:814
DynamicObject * getDynamicObject() const noexcept
Definition juce_Variant.cpp:575
bool isString() const noexcept
Definition juce_Variant.cpp:559
int size() const
Definition juce_Variant.cpp:759
var invoke(const Identifier &method, const var *arguments, int numArguments) const
Definition juce_Variant.cpp:716
void writeToStream(OutputStream &output) const
Definition juce_Variant.cpp:833
Array< var > * convertToArray()
Definition juce_Variant.cpp:789
var() noexcept
Definition juce_Variant.cpp:509
~var() noexcept
Definition juce_Variant.cpp:511
ReferenceCountedObject * getObject() const noexcept
Definition juce_Variant.cpp:572
Array< var > * getArray() const noexcept
Definition juce_Variant.cpp:573
int indexOf(const var &value) const
Definition juce_Variant.cpp:824
std::function< var(const NativeFunctionArgs &)> NativeFunction
Definition juce_Variant.h:57
const VariantType * type
Definition juce_Variant.h:313
NativeFunction getNativeFunction() const
Definition juce_Variant.cpp:711
bool hasProperty(const Identifier &propertyName) const noexcept
Definition juce_Variant.cpp:703
bool isObject() const noexcept
Definition juce_Variant.cpp:560
static var readFromStream(InputStream &input)
Definition juce_Variant.cpp:838
void swapWith(var &other) noexcept
Definition juce_Variant.cpp:578
bool isVoid() const noexcept
Definition juce_Variant.cpp:553
bool isBinaryData() const noexcept
Definition juce_Variant.cpp:562
bool isInt64() const noexcept
Definition juce_Variant.cpp:556
String toString() const
Definition juce_Variant.cpp:570
void append(const var &valueToAppend)
Definition juce_Variant.cpp:803
bool isBool() const noexcept
Definition juce_Variant.cpp:557
bool equals(const var &other) const noexcept
Definition juce_Variant.cpp:634
bool equalsWithSameType(const var &other) const noexcept
Definition juce_Variant.cpp:639
void resize(int numArrayElementsWanted)
Definition juce_Variant.cpp:819
bool isDouble() const noexcept
Definition juce_Variant.cpp:558
bool isInt() const noexcept
Definition juce_Variant.cpp:555
bool isArray() const noexcept
Definition juce_Variant.cpp:561
var getProperty(const Identifier &propertyName, const var &defaultReturnValue) const
Definition juce_Variant.cpp:695
void remove(int index)
Definition juce_Variant.cpp:808
bool isUndefined() const noexcept
Definition juce_Variant.cpp:554
var call(const Identifier &method) const
Definition juce_Variant.cpp:724
friend bool canCompare(const var &, const var &)
Definition juce_Variant.cpp:649
bool hasSameTypeAs(const var &other) const noexcept
Definition juce_Variant.cpp:644
ValueUnion value
Definition juce_Variant.h:314
var clone() const noexcept
Definition juce_Variant.cpp:676
MemoryBlock * getBinaryData() const noexcept
Definition juce_Variant.cpp:574
unsigned * m
Definition inflate.c:1559
struct huft * t
Definition inflate.c:943
unsigned v[N_MAX]
Definition inflate.c:1584
unsigned d
Definition inflate.c:940
register unsigned i
Definition inflate.c:1575
unsigned s
Definition inflate.c:1555
static void v2(register WDL_FFT_REAL *a)
Definition fft.c:1099
static PuglViewHint int value
Definition pugl.h:1708
CARLA_PLUGIN_EXPORT int clone(int(*)(void *), void *, int, void *,...)
Definition interposer-safe.cpp:46
void * object
Definition jmemsys.h:50
JSAMPIMAGE data
Definition jpeglib.h:945
#define JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE(...)
Definition juce_CompilerWarnings.h:181
#define JUCE_END_IGNORE_WARNINGS_GCC_LIKE
Definition juce_CompilerWarnings.h:182
#define JUCE_BEGIN_IGNORE_WARNINGS_MSVC(warnings)
Definition juce_CompilerWarnings.h:198
#define JUCE_END_IGNORE_WARNINGS_MSVC
Definition juce_CompilerWarnings.h:199
Definition carla_juce.cpp:31
bool canCompare(const var &v1, const var &v2)
Definition juce_Variant.cpp:649
static const var & getNullVarRef() noexcept
Definition juce_NamedValueSet.cpp:128
Type unalignedPointerCast(void *ptr) noexcept
Definition juce_Memory.h:88
static String serialiseDouble(double input)
Definition juce_String.cpp:2260
long long int64
Definition juce_MathsFunctions.h:54
wchar_t juce_wchar
Definition juce_CharacterFunctions.h:42
VariantStreamMarkers
Definition juce_Variant.cpp:27
@ varMarker_Int64
Definition juce_Variant.cpp:33
@ varMarker_Double
Definition juce_Variant.cpp:31
@ varMarker_BoolFalse
Definition juce_Variant.cpp:30
@ varMarker_Undefined
Definition juce_Variant.cpp:36
@ varMarker_BoolTrue
Definition juce_Variant.cpp:29
@ varMarker_String
Definition juce_Variant.cpp:32
@ varMarker_Binary
Definition juce_Variant.cpp:35
@ varMarker_Array
Definition juce_Variant.cpp:34
@ varMarker_Int
Definition juce_Variant.cpp:28
bool isPositiveAndBelow(Type1 valueToTest, Type2 upperLimit) noexcept
Definition juce_MathsFunctions.h:279
int pointer_sized_int
Definition juce_MathsFunctions.h:80
static int compare(const var &v1, const var &v2)
Definition juce_Variant.cpp:654
Definition juce_Uuid.h:141
static bool diff(const std::string fn1, const std::string fn2)
Definition playertest.cpp:161
Definition juce_Variant.cpp:482
static constexpr VariantType attributesString
Definition juce_Variant.cpp:491
static constexpr VariantType attributesInt64
Definition juce_Variant.cpp:486
static constexpr VariantType attributesVoid
Definition juce_Variant.cpp:483
static constexpr VariantType attributesMethod
Definition juce_Variant.cpp:489
static constexpr VariantType attributesArray
Definition juce_Variant.cpp:490
static constexpr VariantType attributesBinary
Definition juce_Variant.cpp:492
static constexpr VariantType attributesUndefined
Definition juce_Variant.cpp:484
static constexpr VariantType attributesDouble
Definition juce_Variant.cpp:488
static constexpr VariantType attributesBool
Definition juce_Variant.cpp:487
static constexpr VariantType attributesInt
Definition juce_Variant.cpp:485
static constexpr VariantType attributesObject
Definition juce_Variant.cpp:493
Definition juce_Variant.h:49
int numArguments
Definition juce_Variant.h:54
const var & thisObject
Definition juce_Variant.h:52
NativeFunctionArgs(const var &thisObject, const var *args, int numArgs) noexcept
Definition juce_Variant.cpp:891
const var * arguments
Definition juce_Variant.h:53
Definition juce_Variant.cpp:50
Definition juce_Variant.cpp:51
Definition juce_Variant.cpp:47
Definition juce_Variant.cpp:46
Definition juce_Variant.cpp:45
Definition juce_Variant.cpp:44
Definition juce_Variant.cpp:52
Definition juce_Variant.cpp:49
Definition juce_Variant.cpp:405
RefCountedArray(Array< var > &&a)
Definition juce_Variant.cpp:407
Array< var > array
Definition juce_Variant.cpp:408
RefCountedArray(const Array< var > &a)
Definition juce_Variant.cpp:406
Definition juce_Variant.cpp:48
Definition juce_Variant.cpp:43
Definition juce_Variant.cpp:42
Definition juce_Variant.cpp:41
static ReferenceCountedObject * arrayToObject(const ValueUnion &) noexcept
Definition juce_Variant.cpp:356
static bool doubleToBool(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:204
static bool voidEquals(const ValueUnion &, const ValueUnion &, const VariantType &otherType) noexcept
Definition juce_Variant.cpp:97
static void intWriteToStream(const ValueUnion &data, OutputStream &output)
Definition juce_Variant.cpp:148
static void stringWriteToStream(const ValueUnion &data, OutputStream &output)
Definition juce_Variant.cpp:281
static String binaryToString(const ValueUnion &data)
Definition juce_Variant.cpp:428
static bool binaryEquals(const ValueUnion &data, const ValueUnion &otherData, const VariantType &otherType) noexcept
Definition juce_Variant.cpp:431
static void binaryCleanUp(ValueUnion &data) noexcept
Definition juce_Variant.cpp:425
static const String * getString(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:259
static MemoryBlock * binaryToBinary(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:429
static String boolToString(const ValueUnion &data)
Definition juce_Variant.cpp:233
int64(* toInt64)(const ValueUnion &)=defaultToInt64
Definition juce_Variant.cpp:69
static double intToDouble(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:136
static void int64WriteToStream(const ValueUnion &data, OutputStream &output)
Definition juce_Variant.cpp:181
static String * getString(ValueUnion &data) noexcept
Definition juce_Variant.cpp:260
constexpr VariantType(ObjectTag) noexcept
Definition juce_Variant.cpp:343
static var objectClone(const var &original)
Definition juce_Variant.cpp:314
static void defaultCreateCopy(ValueUnion &dest, const ValueUnion &source)
Definition juce_Variant.cpp:94
constexpr VariantType(Int64Tag) noexcept
Definition juce_Variant.cpp:188
constexpr VariantType(StringTag) noexcept
Definition juce_Variant.cpp:292
static String intToString(const ValueUnion &data)
Definition juce_Variant.cpp:137
static double defaultToDouble(const ValueUnion &)
Definition juce_Variant.cpp:86
constexpr VariantType(DoubleTag) noexcept
Definition juce_Variant.cpp:218
static var defaultClone(const var &other)
Definition juce_Variant.cpp:92
static int int64ToInt(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:167
bool isInt64
Definition juce_Variant.cpp:58
constexpr VariantType(BinaryTag) noexcept
Definition juce_Variant.cpp:444
int(* toInt)(const ValueUnion &)=defaultToInt
Definition juce_Variant.cpp:68
bool isString
Definition juce_Variant.cpp:61
bool(* equals)(const ValueUnion &, const ValueUnion &, const VariantType &)
Definition juce_Variant.cpp:80
static Array< var > * arrayToArray(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:358
static int64 defaultToInt64(const ValueUnion &)
Definition juce_Variant.cpp:85
static int intToInt(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:134
static void boolWriteToStream(const ValueUnion &data, OutputStream &output)
Definition juce_Variant.cpp:241
static void stringCleanUp(ValueUnion &data) noexcept
Definition juce_Variant.cpp:273
void(* cleanUp)(ValueUnion &)=defaultCleanUp
Definition juce_Variant.cpp:77
constexpr VariantType(UndefinedTag) noexcept
Definition juce_Variant.cpp:127
static void objectCleanUp(ValueUnion &data) noexcept
Definition juce_Variant.cpp:323
static String stringToString(const ValueUnion &data)
Definition juce_Variant.cpp:265
static bool intEquals(const ValueUnion &data, const ValueUnion &otherData, const VariantType &otherType) noexcept
Definition juce_Variant.cpp:140
void(* createCopy)(ValueUnion &, const ValueUnion &)=defaultCreateCopy
Definition juce_Variant.cpp:78
void(* writeToStream)(const ValueUnion &, OutputStream &)
Definition juce_Variant.cpp:81
double(* toDouble)(const ValueUnion &)=defaultToDouble
Definition juce_Variant.cpp:70
bool isArray
Definition juce_Variant.cpp:63
static void methodWriteToStream(const ValueUnion &, OutputStream &output)
Definition juce_Variant.cpp:465
static double doubleToDouble(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:202
bool isVoid
Definition juce_Variant.cpp:55
static void stringCreateCopy(ValueUnion &dest, const ValueUnion &source)
Definition juce_Variant.cpp:274
static String doubleToString(const ValueUnion &data)
Definition juce_Variant.cpp:203
static bool stringToBool(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:266
bool isUndefined
Definition juce_Variant.cpp:56
static double stringToDouble(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:264
static String objectToString(const ValueUnion &data)
Definition juce_Variant.cpp:306
static int64 intToInt64(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:135
static int doubleToInt(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:200
static void undefinedWriteToStream(const ValueUnion &, OutputStream &output)
Definition juce_Variant.cpp:121
bool isInt
Definition juce_Variant.cpp:57
bool(* toBool)(const ValueUnion &)=defaultToBool
Definition juce_Variant.cpp:72
static bool intToBool(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:138
bool isComparable
Definition juce_Variant.cpp:66
static int64 boolToInt64(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:231
static bool objectEquals(const ValueUnion &data, const ValueUnion &otherData, const VariantType &otherType) noexcept
Definition juce_Variant.cpp:332
static ReferenceCountedObject * defaultToObject(const ValueUnion &)
Definition juce_Variant.cpp:89
constexpr VariantType(BoolTag) noexcept
Definition juce_Variant.cpp:247
static void arrayWriteToStream(const ValueUnion &data, OutputStream &output)
Definition juce_Variant.cpp:388
constexpr VariantType(VoidTag) noexcept
Definition juce_Variant.cpp:107
static String int64ToString(const ValueUnion &data)
Definition juce_Variant.cpp:170
static Array< var > * defaultToArray(const ValueUnion &)
Definition juce_Variant.cpp:90
static String undefinedToString(const ValueUnion &)
Definition juce_Variant.cpp:114
static void binaryWriteToStream(const ValueUnion &data, OutputStream &output)
Definition juce_Variant.cpp:437
static String defaultToString(const ValueUnion &)
Definition juce_Variant.cpp:87
static void objectCreateCopy(ValueUnion &dest, const ValueUnion &source)
Definition juce_Variant.cpp:325
static bool methodEquals(const ValueUnion &data, const ValueUnion &otherData, const VariantType &otherType) noexcept
Definition juce_Variant.cpp:460
static bool undefinedEquals(const ValueUnion &, const ValueUnion &, const VariantType &otherType) noexcept
Definition juce_Variant.cpp:116
static void binaryCreateCopy(ValueUnion &dest, const ValueUnion &source)
Definition juce_Variant.cpp:426
constexpr VariantType(IntTag) noexcept
Definition juce_Variant.cpp:155
static int64 int64ToInt64(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:168
static bool methodToBool(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:458
static bool objectToBool(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:311
static bool int64ToBool(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:171
static int boolToInt(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:230
MemoryBlock *(* toBinary)(const ValueUnion &)=defaultToBinary
Definition juce_Variant.cpp:75
String(* toString)(const ValueUnion &)=defaultToString
Definition juce_Variant.cpp:71
static bool boolToBool(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:234
static double int64ToDouble(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:169
static int defaultToInt(const ValueUnion &)
Definition juce_Variant.cpp:84
static void voidWriteToStream(const ValueUnion &, OutputStream &output)
Definition juce_Variant.cpp:102
Array< var > *(* toArray)(const ValueUnion &)=defaultToArray
Definition juce_Variant.cpp:74
constexpr VariantType(ArrayTag) noexcept
Definition juce_Variant.cpp:411
static String arrayToString(const ValueUnion &)
Definition juce_Variant.cpp:355
static var arrayClone(const var &original)
Definition juce_Variant.cpp:373
bool isBool
Definition juce_Variant.cpp:59
static void methodCreateCopy(ValueUnion &dest, const ValueUnion &source)
Definition juce_Variant.cpp:455
static ReferenceCountedObject * objectToObject(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:312
static bool doubleEquals(const ValueUnion &data, const ValueUnion &otherData, const VariantType &otherType) noexcept
Definition juce_Variant.cpp:206
static bool arrayEquals(const ValueUnion &data, const ValueUnion &otherData, const VariantType &otherType) noexcept
Definition juce_Variant.cpp:366
bool isBinary
Definition juce_Variant.cpp:64
static int64 doubleToInt64(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:201
static int stringToInt(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:262
static MemoryBlock * defaultToBinary(const ValueUnion &)
Definition juce_Variant.cpp:91
static double boolToDouble(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:232
static bool int64Equals(const ValueUnion &data, const ValueUnion &otherData, const VariantType &otherType) noexcept
Definition juce_Variant.cpp:173
bool isMethod
Definition juce_Variant.cpp:65
static int64 stringToInt64(const ValueUnion &data) noexcept
Definition juce_Variant.cpp:263
static void methodCleanUp(ValueUnion &data) noexcept
Definition juce_Variant.cpp:454
ReferenceCountedObject *(* toObject)(const ValueUnion &)=defaultToObject
Definition juce_Variant.cpp:73
static void defaultCleanUp(ValueUnion &)
Definition juce_Variant.cpp:93
static bool stringEquals(const ValueUnion &data, const ValueUnion &otherData, const VariantType &otherType) noexcept
Definition juce_Variant.cpp:276
var(* clone)(const var &)=defaultClone
Definition juce_Variant.cpp:76
static bool boolEquals(const ValueUnion &data, const ValueUnion &otherData, const VariantType &otherType) noexcept
Definition juce_Variant.cpp:236
static void doubleWriteToStream(const ValueUnion &data, OutputStream &output)
Definition juce_Variant.cpp:211
bool isDouble
Definition juce_Variant.cpp:60
bool isObject
Definition juce_Variant.cpp:62
static void objectWriteToStream(const ValueUnion &, OutputStream &output)
Definition juce_Variant.cpp:337
static String methodToString(const ValueUnion &)
Definition juce_Variant.cpp:457
static bool defaultToBool(const ValueUnion &)
Definition juce_Variant.cpp:88
constexpr VariantType(MethodTag) noexcept
Definition juce_Variant.cpp:471
Definition juce_Variant.h:300
MemoryBlock * binaryValue
Definition juce_Variant.h:307
char stringValue[sizeof(String)]
Definition juce_Variant.h:305
NativeFunction * methodValue
Definition juce_Variant.h:308
ReferenceCountedObject * objectValue
Definition juce_Variant.h:306
int n
Definition crypt.c:458
for(n=0;n< RAND_HEAD_LEN;n++)
Definition crypt.c:467
typedef int(UZ_EXP MsgFn)()
#define void
Definition unzip.h:396
static ZCONST char Far * method[NUM_METHODS]
Definition zipinfo.c:1008
mo
Definition zipinfo.c:2287
#define const
Definition zconf.h:137