diff --git a/gfx/ots/include/opentype-sanitiser.h b/gfx/ots/include/opentype-sanitiser.h --- a/gfx/ots/include/opentype-sanitiser.h +++ b/gfx/ots/include/opentype-sanitiser.h @@ -1,15 +1,35 @@ // Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef OPENTYPE_SANITISER_H_ #define OPENTYPE_SANITISER_H_ +#if defined(_WIN32) || defined(__CYGWIN__) + #define OTS_DLL_IMPORT __declspec(dllimport) + #define OTS_DLL_EXPORT __declspec(dllexport) +#else + #if __GNUC__ >= 4 + #define OTS_DLL_IMPORT __attribute__((visibility ("default"))) + #define OTS_DLL_EXPORT __attribute__((visibility ("default"))) + #endif +#endif + +#ifdef OTS_DLL + #ifdef OTS_DLL_EXPORTS + #define OTS_API OTS_DLL_EXPORT + #else + #define OTS_API OTS_DLL_IMPORT + #endif +#else + #define OTS_API +#endif + #if defined(_WIN32) #include typedef signed char int8_t; typedef unsigned char uint8_t; typedef short int16_t; typedef unsigned short uint16_t; typedef int int32_t; typedef unsigned int uint32_t; @@ -182,45 +202,45 @@ class OTSStream { // ----------------------------------------------------------------------------- // Process a given OpenType file and write out a sanitised version // output: a pointer to an object implementing the OTSStream interface. The // sanitisied output will be written to this. In the even of a failure, // partial output may have been written. // input: the OpenType file // length: the size, in bytes, of |input| // ----------------------------------------------------------------------------- -bool Process(OTSStream *output, const uint8_t *input, size_t length); +bool OTS_API Process(OTSStream *output, const uint8_t *input, size_t length); // Signature of the function to be provided by the client in order to report errors. // The return type is a boolean so that it can be used within an expression, // but the actual value is ignored. (Suggested convention is to always return 'false'.) #ifdef __GCC__ #define MSGFUNC_FMT_ATTR __attribute__((format(printf, 2, 3))) #else #define MSGFUNC_FMT_ATTR #endif typedef bool (*MessageFunc)(void *user_data, const char *format, ...) MSGFUNC_FMT_ATTR; // Set a callback function that will be called when OTS is reporting an error. -void SetMessageCallback(MessageFunc func, void *user_data); +void OTS_API SetMessageCallback(MessageFunc func, void *user_data); enum TableAction { TABLE_ACTION_DEFAULT, // Use OTS's default action for that table TABLE_ACTION_SANITIZE, // Sanitize the table, potentially droping it TABLE_ACTION_PASSTHRU, // Serialize the table unchanged TABLE_ACTION_DROP // Drop the table }; // Signature of the function to be provided by the client to decide what action // to do for a given table. typedef TableAction (*TableActionFunc)(uint32_t tag, void *user_data); // Set a callback function that will be called when OTS needs to decide what to // do for a font table. -void SetTableActionCallback(TableActionFunc func, void *user_data); +void OTS_API SetTableActionCallback(TableActionFunc func, void *user_data); // Force to disable debug output even when the library is compiled with // -DOTS_DEBUG. void DisableDebugOutput(); // Enable WOFF2 support(experimental). void EnableWOFF2();