Changeset 31296 in webkit for trunk/JavaScriptCore/API/testapi.c


Ignore:
Timestamp:
Mar 25, 2008, 4:23:31 PM (17 years ago)
Author:
Adam Roben
Message:

Make testapi.c compile under MSVC

Currently you must compile testapi.c as C++ code since MSVC does not
support many C features that GCC does.

Reviewed by Steve Falkenburg.

  • API/testapi.c: (nan): Added an implementation of this for MSVC. (assertEqualsAsUTF8String): Use malloc instead of dynamically-sized stack arrays. (assertEqualsAsCharactersPtr): Ditto. (print_callAsFunction): Ditto. (main): Ditto, and explicitly cast from UniChar* to JSChar*.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/API/testapi.c

    r31267 r31296  
    3030#include <wtf/UnusedParam.h>
    3131
     32#if COMPILER(MSVC)
     33
     34#include <wtf/MathExtras.h>
     35
     36static double nan(const char*)
     37{
     38    return std::numeric_limits<double>::quiet_NaN();
     39}
     40
     41#endif
     42
    3243static JSGlobalContextRef context = 0;
    3344
     
    5465
    5566    size_t jsSize = JSStringGetMaximumUTF8CStringSize(valueAsString);
    56     char jsBuffer[jsSize];
     67    char* jsBuffer = (char*)malloc(jsSize);
    5768    JSStringGetUTF8CString(valueAsString, jsBuffer, jsSize);
    5869   
     
    6576        fprintf(stderr, "assertEqualsAsUTF8String failed: jsSize was too small\n");
    6677
     78    free(jsBuffer);
    6779    JSStringRelease(valueAsString);
    6880}
     
    7991                                                                    kCFStringEncodingUTF8);   
    8092    CFIndex cfLength = CFStringGetLength(expectedValueAsCFString);
    81     UniChar cfBuffer[cfLength];
     93    UniChar* cfBuffer = (UniChar*)malloc(cfLength * sizeof(UniChar));
    8294    CFStringGetCharacters(expectedValueAsCFString, CFRangeMake(0, cfLength), cfBuffer);
    8395    CFRelease(expectedValueAsCFString);
     
    89101        fprintf(stderr, "assertEqualsAsCharactersPtr failed: jsLength(%ld) != cfLength(%ld)\n", jsLength, cfLength);
    90102   
     103    free(cfBuffer);
    91104    JSStringRelease(valueAsString);
    92105}
     
    444457        JSStringRef string = JSValueToStringCopy(context, arguments[0], NULL);
    445458        size_t sizeUTF8 = JSStringGetMaximumUTF8CStringSize(string);
    446         char stringUTF8[sizeUTF8];
     459        char* stringUTF8 = (char*)malloc(sizeUTF8);
    447460        JSStringGetUTF8CString(string, stringUTF8, sizeUTF8);
    448461        printf("%s\n", stringUTF8);
     462        free(stringUTF8);
    449463        JSStringRelease(string);
    450464    }
     
    600614
    601615    CFIndex cfStringLength = CFStringGetLength(cfString);
    602     UniChar buffer[cfStringLength];
     616    UniChar* buffer = (UniChar*)malloc(cfStringLength * sizeof(UniChar));
    603617    CFStringGetCharacters(cfString,
    604618                          CFRangeMake(0, cfStringLength),
    605619                          buffer);
    606     JSStringRef jsCFIStringWithCharacters = JSStringCreateWithCharacters(buffer, cfStringLength);
     620    JSStringRef jsCFIStringWithCharacters = JSStringCreateWithCharacters((JSChar*)buffer, cfStringLength);
    607621    JSValueRef jsCFStringWithCharacters = JSValueMakeString(context, jsCFIStringWithCharacters);
    608622   
    609     JSStringRef jsCFEmptyIStringWithCharacters = JSStringCreateWithCharacters(buffer, CFStringGetLength(cfEmptyString));
     623    JSStringRef jsCFEmptyIStringWithCharacters = JSStringCreateWithCharacters((JSChar*)buffer, CFStringGetLength(cfEmptyString));
     624    free(buffer);
    610625    JSValueRef jsCFEmptyStringWithCharacters = JSValueMakeString(context, jsCFEmptyIStringWithCharacters);
    611626
Note: See TracChangeset for help on using the changeset viewer.