summaryrefslogtreecommitdiffstats
path: root/modules/brotli/enc/block_encoder_inc.h
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@wolfbeast.com>2019-11-14 09:07:29 +0100
committerwolfbeast <mcwerewolf@wolfbeast.com>2019-11-14 09:07:29 +0100
commit56de283899bc91f7110aba58a3ca174c10852683 (patch)
tree779e6501bbbe4f015509c423ab44f2f40ea97cc8 /modules/brotli/enc/block_encoder_inc.h
parentce0dd36a78814c59950fde6c19413c1f7ea85ee1 (diff)
downloadUXP-56de283899bc91f7110aba58a3ca174c10852683.tar
UXP-56de283899bc91f7110aba58a3ca174c10852683.tar.gz
UXP-56de283899bc91f7110aba58a3ca174c10852683.tar.lz
UXP-56de283899bc91f7110aba58a3ca174c10852683.tar.xz
UXP-56de283899bc91f7110aba58a3ca174c10852683.zip
Issue #1288 - Part 1a: Update brotli to 1.0.7
This also reorganizes the exports in the build system to use `brotli/` as include directory.
Diffstat (limited to 'modules/brotli/enc/block_encoder_inc.h')
-rw-r--r--modules/brotli/enc/block_encoder_inc.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/modules/brotli/enc/block_encoder_inc.h b/modules/brotli/enc/block_encoder_inc.h
new file mode 100644
index 000000000..8cbd5eac6
--- /dev/null
+++ b/modules/brotli/enc/block_encoder_inc.h
@@ -0,0 +1,34 @@
+/* NOLINT(build/header_guard) */
+/* Copyright 2014 Google Inc. All Rights Reserved.
+
+ Distributed under MIT license.
+ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
+*/
+
+/* template parameters: FN */
+
+#define HistogramType FN(Histogram)
+
+/* Creates entropy codes for all block types and stores them to the bit
+ stream. */
+static void FN(BuildAndStoreEntropyCodes)(MemoryManager* m, BlockEncoder* self,
+ const HistogramType* histograms, const size_t histograms_size,
+ const size_t alphabet_size, HuffmanTree* tree,
+ size_t* storage_ix, uint8_t* storage) {
+ const size_t table_size = histograms_size * self->histogram_length_;
+ self->depths_ = BROTLI_ALLOC(m, uint8_t, table_size);
+ self->bits_ = BROTLI_ALLOC(m, uint16_t, table_size);
+ if (BROTLI_IS_OOM(m)) return;
+
+ {
+ size_t i;
+ for (i = 0; i < histograms_size; ++i) {
+ size_t ix = i * self->histogram_length_;
+ BuildAndStoreHuffmanTree(&histograms[i].data_[0], self->histogram_length_,
+ alphabet_size, tree, &self->depths_[ix], &self->bits_[ix],
+ storage_ix, storage);
+ }
+ }
+}
+
+#undef HistogramType