mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 703135 - Disable optimizations in oc_huff_tree_collapse when building with MSVC2012 and later to avoid crash due to compiler bug. r=derf
This commit is contained in:
parent
6e0640f6b1
commit
c38dbe3970
43
media/libtheora/bug703135.patch
Normal file
43
media/libtheora/bug703135.patch
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
diff --git a/media/libtheora/lib/huffdec.c b/media/libtheora/lib/huffdec.c
|
||||||
|
--- a/media/libtheora/lib/huffdec.c
|
||||||
|
+++ b/media/libtheora/lib/huffdec.c
|
||||||
|
@@ -320,16 +320,19 @@ static size_t oc_huff_node_size(int _nbi
|
||||||
|
/*Produces a collapsed-tree representation of the given token list.
|
||||||
|
_tree: The storage for the collapsed Huffman tree.
|
||||||
|
This may be NULL to compute the required storage size instead of
|
||||||
|
constructing the tree.
|
||||||
|
_tokens: A list of internal tokens, in the order they are found in the
|
||||||
|
codebook, and the lengths of their corresponding codewords.
|
||||||
|
_ntokens: The number of tokens corresponding to this tree node.
|
||||||
|
Return: The number of words required to store the tree.*/
|
||||||
|
+#if defined(_MSC_VER) && _MSC_VER >= 1700
|
||||||
|
+#pragma optimize( "", off )
|
||||||
|
+#endif
|
||||||
|
static size_t oc_huff_tree_collapse(ogg_int16_t *_tree,
|
||||||
|
unsigned char _tokens[][2],int _ntokens){
|
||||||
|
ogg_int16_t node[34];
|
||||||
|
unsigned char depth[34];
|
||||||
|
unsigned char last[34];
|
||||||
|
size_t ntree;
|
||||||
|
int ti;
|
||||||
|
int l;
|
||||||
|
@@ -367,16 +370,19 @@ static size_t oc_huff_tree_collapse(ogg_
|
||||||
|
/*Pop back up a level of recursion.*/
|
||||||
|
else if(l-->0)nbits=depth[l+1]-depth[l];
|
||||||
|
}
|
||||||
|
while(l>=0);
|
||||||
|
}
|
||||||
|
while(l>=0);
|
||||||
|
return ntree;
|
||||||
|
}
|
||||||
|
+#if defined(_MSC_VER) && _MSC_VER >= 1700
|
||||||
|
+#pragma optimize( "", on )
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
/*Unpacks a set of Huffman trees, and reduces them to a collapsed
|
||||||
|
representation.
|
||||||
|
_opb: The buffer to unpack the trees from.
|
||||||
|
_nodes: The table to fill with the Huffman trees.
|
||||||
|
Return: 0 on success, or a negative value on error.
|
||||||
|
The caller is responsible for cleaning up any partially initialized
|
||||||
|
_nodes on failure.*/
|
@ -325,6 +325,9 @@ static size_t oc_huff_node_size(int _nbits){
|
|||||||
codebook, and the lengths of their corresponding codewords.
|
codebook, and the lengths of their corresponding codewords.
|
||||||
_ntokens: The number of tokens corresponding to this tree node.
|
_ntokens: The number of tokens corresponding to this tree node.
|
||||||
Return: The number of words required to store the tree.*/
|
Return: The number of words required to store the tree.*/
|
||||||
|
#if defined(_MSC_VER) && _MSC_VER >= 1700
|
||||||
|
#pragma optimize( "", off )
|
||||||
|
#endif
|
||||||
static size_t oc_huff_tree_collapse(ogg_int16_t *_tree,
|
static size_t oc_huff_tree_collapse(ogg_int16_t *_tree,
|
||||||
unsigned char _tokens[][2],int _ntokens){
|
unsigned char _tokens[][2],int _ntokens){
|
||||||
ogg_int16_t node[34];
|
ogg_int16_t node[34];
|
||||||
@ -372,6 +375,9 @@ static size_t oc_huff_tree_collapse(ogg_int16_t *_tree,
|
|||||||
while(l>=0);
|
while(l>=0);
|
||||||
return ntree;
|
return ntree;
|
||||||
}
|
}
|
||||||
|
#if defined(_MSC_VER) && _MSC_VER >= 1700
|
||||||
|
#pragma optimize( "", on )
|
||||||
|
#endif
|
||||||
|
|
||||||
/*Unpacks a set of Huffman trees, and reduces them to a collapsed
|
/*Unpacks a set of Huffman trees, and reduces them to a collapsed
|
||||||
representation.
|
representation.
|
||||||
|
@ -82,3 +82,4 @@ patch -p3 < ./bug625773-r17780.patch
|
|||||||
patch -p3 < ./bug468275-r18219.patch
|
patch -p3 < ./bug468275-r18219.patch
|
||||||
patch -p3 < ./bug752139-r18031.patch
|
patch -p3 < ./bug752139-r18031.patch
|
||||||
patch -p3 < ./bug752668-r18268.patch
|
patch -p3 < ./bug752668-r18268.patch
|
||||||
|
patch -p3 < ./bug703135.patch
|
||||||
|
Loading…
Reference in New Issue
Block a user