diff --git a/Makefile b/Makefile index 92b8d54..9642c75 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ OS := $(shell uname) -CPPFLAGS = -I./brotli/dec/ -I./brotli/enc/ -I./src +CPPFLAGS = -I./brotli/include/ -I./src CC ?= gcc CXX ?= g++ @@ -23,8 +23,10 @@ OUROBJ = font.o glyph.o normalize.o table_tags.o transform.o \ variable_length.o BROTLI = brotli -ENCOBJ = $(BROTLI)/enc/*.o -DECOBJ = $(BROTLI)/dec/*.o +BROTLIOBJ = $(BROTLI)/bin/obj +ENCOBJ = $(BROTLIOBJ)/enc/*.o +DECOBJ = $(BROTLIOBJ)/dec/*.o +COMMONOBJ = $(BROTLIOBJ)/common/*.o OBJS = $(patsubst %, $(SRCDIR)/%, $(OUROBJ)) EXECUTABLES=woff2_compress woff2_decompress @@ -38,13 +40,11 @@ endif all : $(OBJS) $(EXECUTABLES) $(EXECUTABLES) : $(EXE_OBJS) deps - $(CXX) $(LFLAGS) $(OBJS) $(ENCOBJ) $(DECOBJ) $(SRCDIR)/$@.o -o $@ + $(CXX) $(LFLAGS) $(OBJS) $(COMMONOBJ) $(ENCOBJ) $(DECOBJ) $(SRCDIR)/$@.o -o $@ deps : - $(MAKE) -C $(BROTLI)/dec - $(MAKE) -C $(BROTLI)/enc + $(MAKE) -C $(BROTLI) lib clean : rm -f $(OBJS) $(EXE_OBJS) $(EXECUTABLES) - $(MAKE) -C $(BROTLI)/dec clean - $(MAKE) -C $(BROTLI)/enc clean + $(MAKE) -C $(BROTLI) clean diff --git a/brotli b/brotli index 510131d..222564a 160000 --- a/brotli +++ b/brotli @@ -1 +1 @@ -Subproject commit 510131d1db47f91602f45b9a8d7b1ee54d12a629 +Subproject commit 222564a95d9ab58865a096b8d9f7324ea5f2e03e diff --git a/src/woff2_dec.cc b/src/woff2_dec.cc index ec75775..ee85fad 100644 --- a/src/woff2_dec.cc +++ b/src/woff2_dec.cc @@ -27,7 +27,7 @@ #include #include -#include "./decode.h" +#include "./brotli/decode.h" #include "./buffer.h" #include "./port.h" #include "./round.h" @@ -742,9 +742,10 @@ bool ReconstructTransformedHmtx(const uint8_t* transformed_buf, bool Woff2Uncompress(uint8_t* dst_buf, size_t dst_size, const uint8_t* src_buf, size_t src_size) { size_t uncompressed_size = dst_size; - int ok = BrotliDecompressBuffer(src_size, src_buf, - &uncompressed_size, dst_buf); - if (PREDICT_FALSE(!ok || uncompressed_size != dst_size)) { + BrotliDecoderResult result = BrotliDecoderDecompress( + src_size, src_buf, &uncompressed_size, dst_buf); + if (PREDICT_FALSE(result != BROTLI_DECODER_RESULT_SUCCESS || + uncompressed_size != dst_size)) { return FONT_COMPRESSION_FAILURE(); } return true; diff --git a/src/woff2_enc.cc b/src/woff2_enc.cc index d100ad5..bc5238f 100644 --- a/src/woff2_enc.cc +++ b/src/woff2_enc.cc @@ -23,7 +23,7 @@ #include #include -#include "./compressor.h" +#include "./brotli/encode.h" #include "./buffer.h" #include "./font.h" #include "./normalize.h" @@ -47,16 +47,11 @@ using std::vector; const size_t kWoff2HeaderSize = 48; const size_t kWoff2EntrySize = 20; - -bool Compress(const uint8_t* data, const size_t len, - uint8_t* result, uint32_t* result_len, - brotli::BrotliParams::Mode mode, int quality) { +bool Compress(const uint8_t* data, const size_t len, uint8_t* result, + uint32_t* result_len, BrotliEncoderMode mode, int quality) { size_t compressed_len = *result_len; - brotli::BrotliParams params; - params.mode = mode; - params.quality = quality; - if (brotli::BrotliCompressBuffer(params, len, data, &compressed_len, result) - == 0) { + if (BrotliEncoderCompress(quality, BROTLI_DEFAULT_WINDOW, mode, len, data, + &compressed_len, result) == 0) { return false; } *result_len = compressed_len; @@ -67,14 +62,14 @@ bool Woff2Compress(const uint8_t* data, const size_t len, uint8_t* result, uint32_t* result_len, int quality) { return Compress(data, len, result, result_len, - brotli::BrotliParams::MODE_FONT, quality); + BROTLI_MODE_FONT, quality); } bool TextCompress(const uint8_t* data, const size_t len, uint8_t* result, uint32_t* result_len, int quality) { return Compress(data, len, result, result_len, - brotli::BrotliParams::MODE_TEXT, quality); + BROTLI_MODE_TEXT, quality); } int KnownTableIndex(uint32_t tag) {