[2/7] webservices: Add an index to the static dictionary.

Hans Leidekker hans at codeweavers.com
Wed Jun 28 06:44:56 CDT 2017


Signed-off-by: Hans Leidekker <hans at codeweavers.com>
---
 dlls/webservices/string.c              | 156 ++++++++++++++++++++++++++++++++-
 dlls/webservices/webservices_private.h |   2 +-
 2 files changed, 154 insertions(+), 4 deletions(-)

diff --git a/dlls/webservices/string.c b/dlls/webservices/string.c
index f9df48f..cbc7c5a 100644
--- a/dlls/webservices/string.c
+++ b/dlls/webservices/string.c
@@ -723,12 +723,162 @@ static const WS_XML_STRING dict_strings[] =
 #undef X
 };
 
+static const ULONG dict_sorted[] =
+{
+    81, 91, 129, 314, 185, 164, 346, 66, 235, 305, 14, 6, 114, 97, 96, 94, 11, 95, 110, 451,
+    443, 121, 213, 7, 71, 82, 431, 343, 74, 75, 73, 59, 447, 445, 467, 163, 472, 463, 453, 409,
+    69, 286, 466, 444, 383, 67, 117, 26, 40, 345, 465, 90, 25, 77, 482, 455, 470, 344, 353, 80,
+    70, 449, 299, 331, 251, 330, 5, 253, 224, 390, 120, 76, 281, 4, 276, 56, 118, 436, 72, 394,
+    232, 464, 486, 456, 473, 459, 357, 393, 21, 269, 209, 54, 204, 55, 83, 35, 317, 196, 221, 321,
+    433, 387, 22, 78, 288, 419, 461, 446, 457, 474, 261, 272, 424, 308, 1, 274, 322, 93, 319, 202,
+    277, 416, 104, 318, 309, 165, 87, 85, 388, 389, 364, 300, 391, 52, 31, 227, 301, 167, 323, 458,
+    462, 411, 194, 8, 198, 179, 256, 392, 270, 418, 303, 337, 296, 13, 283, 284, 311, 12, 9, 41,
+    287, 53, 187, 18, 58, 483, 471, 468, 425, 49, 271, 295, 410, 116, 15, 379, 112, 119, 109, 42,
+    17, 485, 469, 254, 50, 206, 415, 20, 228, 339, 430, 435, 320, 127, 242, 208, 86, 484, 452, 420,
+    328, 210, 243, 200, 19, 170, 312, 429, 376, 275, 247, 313, 278, 279, 285, 166, 417, 460, 448, 454,
+    257, 199, 267, 46, 47, 421, 171, 32, 282, 79, 57, 226, 347, 168, 450, 252, 260, 201, 310, 380,
+    332, 361, 225, 414, 413, 68, 280, 438, 45, 325, 0, 128, 27, 306, 39, 60, 377, 184, 44, 294,
+    351, 327, 476, 475, 266, 362, 48, 354, 355, 365, 89, 297, 324, 326, 479, 381, 84, 378, 349, 98,
+    258, 259, 291, 412, 366, 348, 423, 478, 477, 169, 360, 406, 273, 229, 113, 407, 100, 88, 363, 205,
+    289, 24, 255, 264, 231, 182, 183, 101, 207, 115, 263, 334, 342, 186, 43, 480, 335, 338, 203, 30,
+    265, 244, 197, 23, 290, 230, 358, 408, 341, 367, 368, 245, 262, 195, 246, 374, 404, 405, 422, 268,
+    375, 442, 359, 37, 33, 3, 180, 487, 62, 155, 156, 157, 111, 2, 122, 16, 38, 316, 315, 144,
+    154, 481, 441, 103, 28, 382, 145, 152, 139, 141, 143, 150, 99, 102, 298, 214, 130, 63, 147, 138,
+    140, 142, 428, 356, 131, 292, 434, 159, 293, 307, 158, 10, 437, 151, 352, 162, 105, 403, 395, 402,
+    238, 241, 248, 153, 108, 398, 399, 373, 149, 249, 211, 148, 400, 401, 396, 132, 212, 146, 65, 123,
+    397, 340, 240, 133, 440, 124, 223, 384, 385, 371, 329, 250, 236, 34, 432, 107, 386, 237, 304, 234,
+    439, 333, 161, 222, 64, 239, 92, 233, 160, 134, 217, 220, 350, 136, 135, 137, 125, 426, 218, 126,
+    372, 215, 216, 106, 336, 29, 219, 61, 302, 193, 369, 191, 192, 181, 370, 178, 189, 36, 188, 51,
+    190, 174, 427, 176, 173, 177, 172, 175, 81, 91, 129, 314, 185, 164, 346, 66, 235, 305, 14, 6,
+    114, 97, 96, 94, 11, 95, 110, 451, 443, 121, 213, 7, 71, 82, 431, 343, 74, 75, 73, 59,
+    447, 445, 467, 163, 472, 463, 453, 409, 69, 286, 466, 444, 383, 67, 117, 26, 40, 345, 465, 90,
+    25, 77, 482, 455, 470, 344, 353, 80, 70, 449, 299, 331, 251, 330, 5, 253, 224, 390, 120, 76,
+    281, 4, 276, 56, 118, 436, 72, 394, 232, 464, 486, 456, 473, 459, 357, 393, 21, 269, 209, 54,
+    204, 55, 83, 35, 317, 196, 221, 321, 433, 387, 22, 78, 288, 419, 461, 446, 457, 474, 261, 272,
+    424, 308, 1, 274, 322, 93, 319, 202, 277, 416, 104, 318, 309, 165, 87, 85, 388, 389, 364, 300,
+    391, 52, 31, 227, 301, 167, 323, 458, 462, 411, 194, 8, 198, 179, 256, 392, 270, 418, 303, 337,
+    296, 13, 283, 284, 311, 12, 9, 41, 287, 53, 187, 18, 58, 483, 471, 468, 425, 49, 271, 295,
+    410, 116, 15, 379, 112, 119, 109, 42, 17, 485, 469, 254, 50, 206, 415, 20, 228, 339, 430, 435,
+    320, 127, 242, 208, 86, 484, 452, 420, 328, 210, 243, 200, 19, 170, 312, 429, 376, 275, 247, 313,
+    278, 279, 285, 166, 417, 460, 448, 454, 257, 199, 267, 46, 47, 421, 171, 32, 282, 79, 57, 226,
+    347, 168, 450, 252, 260, 201, 310, 380, 332, 361, 225, 414, 413, 68, 280, 438, 45, 325, 0, 128,
+    27, 306, 39, 60, 377, 184, 44, 294, 351, 327, 476, 475, 266, 362, 48, 354, 355, 365, 89, 297,
+    324, 326, 479, 381, 84, 378, 349, 98, 258, 259, 291, 412, 366, 348, 423, 478, 477, 169, 360, 406,
+    273, 229, 113, 407, 100, 88, 363, 205, 289, 24, 255, 264, 231, 182, 183, 101, 207, 115, 263, 334,
+    342, 186, 43, 480, 335, 338, 203, 30, 265, 244, 197, 23, 290, 230, 358, 408, 341, 367, 368, 245,
+    262, 195, 246, 374, 404, 405, 422, 268, 375, 442, 359, 37, 33, 3, 180, 487, 62, 155, 156, 157,
+    111, 2, 122, 16, 38, 316, 315, 144, 154, 481, 441, 103, 28, 382, 145, 152, 139, 141, 143, 150,
+    99, 102, 298, 214, 130, 63, 147, 138, 140, 142, 428, 356, 131, 292, 434, 159, 293, 307, 158, 10,
+    437, 151, 352, 162, 105, 403, 395, 402, 238, 241, 248, 153, 108, 398, 399, 373, 149, 249, 211, 148,
+    400, 401, 396, 132, 212, 146, 65, 123, 397, 340, 240, 133, 440, 124, 223, 384, 385, 371, 329, 250,
+    236, 34, 432, 107, 386, 237, 304, 234, 439, 333, 161, 222, 64, 239, 92, 233, 160, 134, 217, 220,
+    350, 136, 135, 137, 125, 426, 218, 126, 372, 215, 216, 106, 336, 29, 219, 61, 302, 193, 369, 191,
+    192, 181, 370, 178, 189, 36, 188, 51, 190, 174, 427, 176, 173, 177, 172, 175, 81, 91, 129, 314,
+    185, 164, 346, 66, 235, 305, 14, 6, 114, 97, 96, 94, 11, 95, 110, 451, 443, 121, 213, 7,
+    71, 82, 431, 343, 74, 75, 73, 59, 447, 445, 467, 163, 472, 463, 453, 409, 69, 286, 466, 444,
+    383, 67, 117, 26, 40, 345, 465, 90, 25, 77, 482, 455, 470, 344, 353, 80, 70, 449, 299, 331,
+    251, 330, 5, 253, 224, 390, 120, 76, 281, 4, 276, 56, 118, 436, 72, 394, 232, 464, 486, 456,
+    473, 459, 357, 393, 21, 269, 209, 54, 204, 55, 83, 35, 317, 196, 221, 321, 433, 387, 22, 78,
+    288, 419, 461, 446, 457, 474, 261, 272, 424, 308, 1, 274, 322, 93, 319, 202, 277, 416, 104, 318,
+    309, 165, 87, 85, 388, 389, 364, 300, 391, 52, 31, 227, 301, 167, 323, 458, 462, 411, 194, 8,
+    198, 179, 256, 392, 270, 418, 303, 337, 296, 13, 283, 284, 311, 12, 9, 41, 287, 53, 187, 18,
+    58, 483, 471, 468, 425, 49, 271, 295, 410, 116, 15, 379, 112, 119, 109, 42, 17, 485, 469, 254,
+    50, 206, 415, 20, 228, 339, 430, 435, 320, 127, 242, 208, 86, 484, 452, 420, 328, 210, 243, 200,
+    19, 170, 312, 429, 376, 275, 247, 313, 278, 279, 285, 166, 417, 460, 448, 454, 257, 199, 267, 46,
+    47, 421, 171, 32, 282, 79, 57, 226, 347, 168, 450, 252, 260, 201, 310, 380, 332, 361, 225, 414,
+    413, 68, 280, 438, 45, 325, 0, 128, 27, 306, 39, 60, 377, 184, 44, 294, 351, 327, 476, 475,
+    266, 362, 48, 354, 355, 365, 89, 297, 324, 326, 479, 381, 84, 378, 349, 98, 258, 259, 291, 412,
+    366, 348, 423, 478, 477, 169, 360, 406, 273, 229, 113, 407, 100, 88, 363, 205, 289, 24, 255, 264,
+    231, 182, 183, 101, 207, 115, 263, 334, 342, 186, 43, 480, 335, 338, 203, 30, 265, 244, 197, 23,
+    290, 230, 358, 408, 341, 367, 368, 245, 262, 195, 246, 374, 404, 405, 422, 268, 375, 442, 359, 37,
+    33, 3, 180, 487, 62, 155, 156, 157, 111, 2, 122, 16, 38, 316, 315, 144, 154, 481, 441, 103,
+    28, 382, 145, 152, 139, 141, 143, 150, 99, 102, 298, 214, 130, 63, 147, 138, 140, 142, 428, 356,
+    131, 292, 434, 159, 293, 307, 158, 10, 437, 151, 352, 162, 105, 403, 395, 402, 238, 241, 248, 153,
+    108, 398, 399, 373, 149, 249, 211, 148, 400, 401, 396, 132, 212, 146, 65, 123, 397, 340, 240, 133,
+    440, 124, 223, 384, 385, 371, 329, 250, 236, 34, 432, 107, 386, 237, 304, 234, 439, 333, 161, 222,
+    64, 239, 92, 233, 160, 134, 217, 220, 350, 136, 135, 137, 125, 426, 218, 126, 372, 215, 216, 106,
+    336, 29, 219, 61, 302, 193, 369, 191, 192, 181, 370, 178, 189, 36, 188, 51, 190, 174, 427, 176,
+    173, 177, 172, 175, 81, 91, 129, 314, 185, 164, 346, 66, 235, 305, 14, 6, 114, 97, 96, 94,
+    11, 95, 110, 451, 443, 121, 213, 7, 71, 82, 431, 343, 74, 75, 73, 59, 447, 445, 467, 163,
+    472, 463, 453, 409, 69, 286, 466, 444, 383, 67, 117, 26, 40, 345, 465, 90, 25, 77, 482, 455,
+    470, 344, 353, 80, 70, 449, 299, 331, 251, 330, 5, 253, 224, 390, 120, 76, 281, 4, 276, 56,
+    118, 436, 72, 394, 232, 464, 486, 456, 473, 459, 357, 393, 21, 269, 209, 54, 204, 55, 83, 35,
+    317, 196, 221, 321, 433, 387, 22, 78, 288, 419, 461, 446, 457, 474, 261, 272, 424, 308, 1, 274,
+    322, 93, 319, 202, 277, 416, 104, 318, 309, 165, 87, 85, 388, 389, 364, 300, 391, 52, 31, 227,
+    301, 167, 323, 458, 462, 411, 194, 8, 198, 179, 256, 392, 270, 418, 303, 337, 296, 13, 283, 284,
+    311, 12, 9, 41, 287, 53, 187, 18, 58, 483, 471, 468, 425, 49, 271, 295, 410, 116, 15, 379,
+    112, 119, 109, 42, 17, 485, 469, 254, 50, 206, 415, 20, 228, 339, 430, 435, 320, 127, 242, 208,
+    86, 484, 452, 420, 328, 210, 243, 200, 19, 170, 312, 429, 376, 275, 247, 313, 278, 279, 285, 166,
+    417, 460, 448, 454, 257, 199, 267, 46, 47, 421, 171, 32, 282, 79, 57, 226, 347, 168, 450, 252,
+    260, 201, 310, 380, 332, 361, 225, 414, 413, 68, 280, 438, 45, 325, 0, 128, 27, 306, 39, 60,
+    377, 184, 44, 294, 351, 327, 476, 475, 266, 362, 48, 354, 355, 365, 89, 297, 324, 326, 479, 381,
+    84, 378, 349, 98, 258, 259, 291, 412, 366, 348, 423, 478, 477, 169, 360, 406, 273, 229, 113, 407,
+    100, 88, 363, 205, 289, 24, 255, 264, 231, 182, 183, 101, 207, 115, 263, 334, 342, 186, 43, 480,
+    335, 338, 203, 30, 265, 244, 197, 23, 290, 230, 358, 408, 341, 367, 368, 245, 262, 195, 246, 374,
+    404, 405, 422, 268, 375, 442, 359, 37, 33, 3, 180, 487, 62, 155, 156, 157, 111, 2, 122, 16,
+    38, 316, 315, 144, 154, 481, 441, 103, 28, 382, 145, 152, 139, 141, 143, 150, 99, 102, 298, 214,
+    130, 63, 147, 138, 140, 142, 428, 356, 131, 292, 434, 159, 293, 307, 158, 10, 437, 151, 352, 162,
+    105, 403, 395, 402, 238, 241, 248, 153, 108, 398, 399, 373, 149, 249, 211, 148, 400, 401, 396, 132,
+    212, 146, 65, 123, 397, 340, 240, 133, 440, 124, 223, 384, 385, 371, 329, 250, 236, 34, 432, 107,
+    386, 237, 304, 234, 439, 333, 161, 222, 64, 239, 92, 233, 160, 134, 217, 220, 350, 136, 135, 137,
+    125, 426, 218, 126, 372, 215, 216, 106, 336, 29, 219, 61, 302, 193, 369, 191, 192, 181, 370, 178,
+    189, 36, 188, 51, 190, 174, 427, 176, 173, 177, 172, 175, 81, 91, 129, 314, 185, 164, 346, 66,
+    235, 305, 14, 6, 114, 97, 96, 94, 11, 95, 110, 451, 443, 121, 213, 7, 71, 82, 431, 343,
+    74, 75, 73, 59, 447, 445, 467, 163, 472, 463, 453, 409, 69, 286, 466, 444, 383, 67, 117, 26,
+    40, 345, 465, 90, 25, 77, 482, 455, 470, 344, 353, 80, 70, 449, 299, 331, 251, 330, 5, 253,
+    224, 390, 120, 76, 281, 4, 276, 56, 118, 436, 72, 394, 232, 464, 486, 456, 473, 459, 357, 393,
+    21, 269, 209, 54, 204, 55, 83, 35, 317, 196, 221, 321, 433, 387, 22, 78, 288, 419, 461, 446,
+    457, 474, 261, 272, 424, 308, 1, 274, 322, 93, 319, 202, 277, 416, 104, 318, 309, 165, 87, 85,
+    388, 389, 364, 300, 391, 52, 31, 227, 301, 167, 323, 458, 462, 411, 194, 8, 198, 179, 256, 392,
+    270, 418, 303, 337, 296, 13, 283, 284, 311, 12, 9, 41, 287, 53, 187, 18, 58, 483, 471, 468,
+    425, 49, 271, 295, 410, 116, 15, 379, 112, 119, 109, 42, 17, 485, 469, 254, 50, 206, 415, 20,
+    228, 339, 430, 435, 320, 127, 242, 208, 86, 484, 452, 420, 328, 210, 243, 200, 19, 170, 312, 429,
+    376, 275, 247, 313, 278, 279, 285, 166, 417, 460, 448, 454, 257, 199, 267, 46, 47, 421, 171, 32,
+    282, 79, 57, 226, 347, 168, 450, 252, 260, 201, 310, 380, 332, 361, 225, 414, 413, 68, 280, 438,
+    45, 325, 0, 128, 27, 306, 39, 60, 377, 184, 44, 294, 351, 327, 476, 475, 266, 362, 48, 354,
+    355, 365, 89, 297, 324, 326, 479, 381, 84, 378, 349, 98, 258, 259, 291, 412, 366, 348, 423, 478,
+    477, 169, 360, 406, 273, 229, 113, 407, 100, 88, 363, 205, 289, 24, 255, 264, 231, 182, 183, 101,
+    207, 115, 263, 334, 342, 186, 43, 480, 335, 338, 203, 30, 265, 244, 197, 23, 290, 230, 358, 408,
+    341, 367, 368, 245, 262, 195, 246, 374, 404, 405, 422, 268, 375, 442, 359, 37, 33, 3, 180, 487,
+    62, 155, 156, 157, 111, 2, 122, 16, 38, 316, 315, 144, 154, 481, 441, 103, 28, 382, 145, 152,
+    139, 141, 143, 150, 99, 102, 298, 214, 130, 63, 147, 138, 140, 142, 428, 356, 131, 292, 434, 159,
+    293, 307, 158, 10, 437, 151, 352, 162, 105, 403, 395, 402, 238, 241, 248, 153, 108, 398, 399, 373,
+    149, 249, 211, 148, 400, 401, 396, 132, 212, 146, 65, 123, 397, 340, 240, 133, 440, 124, 223, 384,
+    385, 371, 329, 250, 236, 34, 432, 107, 386, 237, 304, 234, 439, 333, 161, 222, 64, 239, 92, 233,
+    160, 134, 217, 220, 350, 136, 135, 137, 125, 426, 218, 126, 372, 215, 216, 106, 336, 29, 219, 61,
+    302, 193, 369, 191, 192, 181, 370, 178, 189, 36, 188, 51, 190, 174, 427, 176, 173, 177, 172, 175,
+    81, 91, 129, 314, 185, 164, 346, 66, 235, 305, 14, 6, 114, 97, 96, 94, 11, 95, 110, 451,
+    443, 121, 213, 7, 71, 82, 431, 343, 74, 75, 73, 59, 447, 445, 467, 163, 472, 463, 453, 409,
+    69, 286, 466, 444, 383, 67, 117, 26, 40, 345, 465, 90, 25, 77, 482, 455, 470, 344, 353, 80,
+    70, 449, 299, 331, 251, 330, 5, 253, 224, 390, 120, 76, 281, 4, 276, 56, 118, 436, 72, 394,
+    232, 464, 486, 456, 473, 459, 357, 393, 21, 269, 209, 54, 204, 55, 83, 35, 317, 196, 221, 321,
+    433, 387, 22, 78, 288, 419, 461, 446, 457, 474, 261, 272, 424, 308, 1, 274, 322, 93, 319, 202,
+    277, 416, 104, 318, 309, 165, 87, 85, 388, 389, 364, 300, 391, 52, 31, 227, 301, 167, 323, 458,
+    462, 411, 194, 8, 198, 179, 256, 392, 270, 418, 303, 337, 296, 13, 283, 284, 311, 12, 9, 41,
+    287, 53, 187, 18, 58, 483, 471, 468, 425, 49, 271, 295, 410, 116, 15, 379, 112, 119, 109, 42,
+    17, 485, 469, 254, 50, 206, 415, 20, 228, 339, 430, 435, 320, 127, 242, 208, 86, 484, 452, 420,
+    328, 210, 243, 200, 19, 170, 312, 429, 376, 275, 247, 313, 278, 279, 285, 166, 417, 460, 448, 454,
+    257, 199, 267, 46, 47, 421, 171, 32, 282, 79, 57, 226, 347, 168, 450, 252, 260, 201, 310, 380,
+    332, 361, 225, 414, 413, 68, 280, 438, 45, 325, 0, 128, 27, 306, 39, 60, 377, 184, 44, 294,
+    351, 327, 476, 475, 266, 362, 48, 354, 355, 365, 89, 297, 324, 326, 479, 381, 84, 378, 349, 98,
+    258, 259, 291, 412, 366, 348, 423, 478, 477, 169, 360, 406, 273, 229, 113, 407, 100, 88, 363, 205,
+    289, 24, 255, 264, 231, 182, 183, 101, 207, 115, 263, 334, 342, 186, 43, 480, 335, 338, 203, 30,
+    265, 244, 197, 23, 290, 230, 358, 408, 341, 367, 368, 245, 262, 195, 246, 374, 404, 405, 422, 268,
+    375, 442, 359, 37, 33, 3, 180, 487, 62, 155, 156, 157, 111, 2, 122, 16, 38, 316, 315, 144,
+    154, 481, 441, 103, 28, 382, 145, 152, 139, 141, 143, 150, 99, 102, 298, 214, 130, 63, 147, 138,
+    140, 142, 428, 356, 131, 292, 434, 159, 293, 307, 158, 10, 437, 151, 352, 162, 105, 403, 395, 402,
+    238, 241, 248, 153, 108, 398, 399, 373, 149, 249, 211, 148, 400, 401, 396, 132, 212, 146, 65, 123,
+    397, 340, 240, 133, 440, 124, 223, 384, 385, 371, 329, 250, 236, 34, 432, 107, 386, 237, 304, 234,
+    439, 333, 161, 222, 64, 239, 92, 233, 160, 134, 217, 220, 350, 136, 135, 137, 125, 426, 218, 126,
+    372, 215, 216, 106, 336, 29, 219, 61, 302, 193, 369, 191, 192, 181, 370, 178, 189, 36, 188, 51,
+    190, 174, 427, 176, 173, 177, 172, 175,
+};
+
 const struct dictionary dict_builtin_static =
 {
     {{0xf93578f8,0x5852,0x4eb7,{0xa6,0xfc,0xe7,0x2b,0xb7,0x1d,0xb6,0x22}},
-     (WS_XML_STRING *)dict_strings,
-     sizeof(dict_strings) / sizeof(dict_strings[0]),
-     TRUE}
+     (WS_XML_STRING *)dict_strings, sizeof(dict_strings)/sizeof(dict_strings[0]), TRUE},
+    (ULONG *)dict_sorted
 };
 
 /**************************************************************************
diff --git a/dlls/webservices/webservices_private.h b/dlls/webservices/webservices_private.h
index cf6e1c4..4894223 100644
--- a/dlls/webservices/webservices_private.h
+++ b/dlls/webservices/webservices_private.h
@@ -38,8 +38,8 @@ void free_xmlbuf( struct xmlbuf * ) DECLSPEC_HIDDEN;
 struct dictionary
 {
     WS_XML_DICTIONARY  dict;
-    ULONG              size;
     ULONG             *sorted;
+    ULONG              size;
 };
 struct dictionary dict_builtin DECLSPEC_HIDDEN;
 const struct dictionary dict_builtin_static DECLSPEC_HIDDEN;
-- 
2.1.4




More information about the wine-patches mailing list