Skip to content

Commit 8c42a9f

Browse files
committed
Refactor per reviwer feedback: use value-based singleton
1 parent 0ba80e9 commit 8c42a9f

File tree

1 file changed

+46
-48
lines changed

1 file changed

+46
-48
lines changed

modules/wechat_qrcode/src/zxing/qrcode/version.cpp

Lines changed: 46 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,12 @@ unsigned int Version::VERSION_DECODE_INFO[] = {
4949
0x228BA, 0x2379F, 0x24B0B, 0x2542E, 0x26A64, 0x27541, 0x28C69};
5050
int Version::N_VERSION_DECODE_INFOS = 34;
5151

52-
std::vector<Ref<Version> >& Version::getVersions() {
53-
static std::vector<Ref<Version> >* versions = new std::vector<Ref<Version> >();
54-
static int initialized = buildVersions();
55-
(void)initialized;
56-
return *versions;
52+
std::vector<Ref<Version>>& Version::getVersions() {
53+
static std::vector<Ref<Version>> versions = buildVersions();
54+
return versions;
5755
}
5856

59-
int Version::getVersionNumber() { return versionNumber_; }
57+
int Version::N_VERSIONS = 40;
6058

6159
vector<int> &Version::getAlignmentPatternCenters() { return alignmentPatternCenters_; }
6260

@@ -298,206 +296,206 @@ Ref<BitMatrix> Version::buildFunctionPattern(ErrorHandler &err_handler) {
298296
return functionPattern;
299297
}
300298

301-
int Version::buildVersions() {
302-
getVersions().push_back(Ref<Version>(new Version(
299+
std::vector<Ref<Version>> Version::buildVersions() {
300+
versions.push_back(Ref<Version>(new Version(
303301
1, intArray(0), new ECBlocks(7, new ECB(1, 19)), new ECBlocks(10, new ECB(1, 16)),
304302
new ECBlocks(13, new ECB(1, 13)), new ECBlocks(17, new ECB(1, 9)))));
305-
getVersions().push_back(Ref<Version>(new Version(
303+
versions.push_back(Ref<Version>(new Version(
306304
2, intArray(2, 6, 18), new ECBlocks(10, new ECB(1, 34)), new ECBlocks(16, new ECB(1, 28)),
307305
new ECBlocks(22, new ECB(1, 22)), new ECBlocks(28, new ECB(1, 16)))));
308-
getVersions().push_back(Ref<Version>(new Version(
306+
versions.push_back(Ref<Version>(new Version(
309307
3, intArray(2, 6, 22), new ECBlocks(15, new ECB(1, 55)), new ECBlocks(26, new ECB(1, 44)),
310308
new ECBlocks(18, new ECB(2, 17)), new ECBlocks(22, new ECB(2, 13)))));
311-
getVersions().push_back(Ref<Version>(new Version(
309+
versions.push_back(Ref<Version>(new Version(
312310
4, intArray(2, 6, 26), new ECBlocks(20, new ECB(1, 80)), new ECBlocks(18, new ECB(2, 32)),
313311
new ECBlocks(26, new ECB(2, 24)), new ECBlocks(16, new ECB(4, 9)))));
314-
getVersions().push_back(Ref<Version>(new Version(
312+
versions.push_back(Ref<Version>(new Version(
315313
5, intArray(2, 6, 30), new ECBlocks(26, new ECB(1, 108)), new ECBlocks(24, new ECB(2, 43)),
316314
new ECBlocks(18, new ECB(2, 15), new ECB(2, 16)),
317315
new ECBlocks(22, new ECB(2, 11), new ECB(2, 12)))));
318-
getVersions().push_back(Ref<Version>(new Version(
316+
versions.push_back(Ref<Version>(new Version(
319317
6, intArray(2, 6, 34), new ECBlocks(18, new ECB(2, 68)), new ECBlocks(16, new ECB(4, 27)),
320318
new ECBlocks(24, new ECB(4, 19)), new ECBlocks(28, new ECB(4, 15)))));
321-
getVersions().push_back(Ref<Version>(new Version(
319+
versions.push_back(Ref<Version>(new Version(
322320
7, intArray(3, 6, 22, 38), new ECBlocks(20, new ECB(2, 78)),
323321
new ECBlocks(18, new ECB(4, 31)), new ECBlocks(18, new ECB(2, 14), new ECB(4, 15)),
324322
new ECBlocks(26, new ECB(4, 13), new ECB(1, 14)))));
325-
getVersions().push_back(
323+
versions.push_back(
326324
Ref<Version>(new Version(8, intArray(3, 6, 24, 42), new ECBlocks(24, new ECB(2, 97)),
327325
new ECBlocks(22, new ECB(2, 38), new ECB(2, 39)),
328326
new ECBlocks(22, new ECB(4, 18), new ECB(2, 19)),
329327
new ECBlocks(26, new ECB(4, 14), new ECB(2, 15)))));
330-
getVersions().push_back(
328+
versions.push_back(
331329
Ref<Version>(new Version(9, intArray(3, 6, 26, 46), new ECBlocks(30, new ECB(2, 116)),
332330
new ECBlocks(22, new ECB(3, 36), new ECB(2, 37)),
333331
new ECBlocks(20, new ECB(4, 16), new ECB(4, 17)),
334332
new ECBlocks(24, new ECB(4, 12), new ECB(4, 13)))));
335-
getVersions().push_back(Ref<Version>(new Version(10, intArray(3, 6, 28, 50),
333+
versions.push_back(Ref<Version>(new Version(10, intArray(3, 6, 28, 50),
336334
new ECBlocks(18, new ECB(2, 68), new ECB(2, 69)),
337335
new ECBlocks(26, new ECB(4, 43), new ECB(1, 44)),
338336
new ECBlocks(24, new ECB(6, 19), new ECB(2, 20)),
339337
new ECBlocks(28, new ECB(6, 15), new ECB(2, 16)))));
340-
getVersions().push_back(
338+
versions.push_back(
341339
Ref<Version>(new Version(11, intArray(3, 6, 30, 54), new ECBlocks(20, new ECB(4, 81)),
342340
new ECBlocks(30, new ECB(1, 50), new ECB(4, 51)),
343341
new ECBlocks(28, new ECB(4, 22), new ECB(4, 23)),
344342
new ECBlocks(24, new ECB(3, 12), new ECB(8, 13)))));
345-
getVersions().push_back(Ref<Version>(new Version(12, intArray(3, 6, 32, 58),
343+
versions.push_back(Ref<Version>(new Version(12, intArray(3, 6, 32, 58),
346344
new ECBlocks(24, new ECB(2, 92), new ECB(2, 93)),
347345
new ECBlocks(22, new ECB(6, 36), new ECB(2, 37)),
348346
new ECBlocks(26, new ECB(4, 20), new ECB(6, 21)),
349347
new ECBlocks(28, new ECB(7, 14), new ECB(4, 15)))));
350-
getVersions().push_back(
348+
versions.push_back(
351349
Ref<Version>(new Version(13, intArray(3, 6, 34, 62), new ECBlocks(26, new ECB(4, 107)),
352350
new ECBlocks(22, new ECB(8, 37), new ECB(1, 38)),
353351
new ECBlocks(24, new ECB(8, 20), new ECB(4, 21)),
354352
new ECBlocks(22, new ECB(12, 11), new ECB(4, 12)))));
355-
getVersions().push_back(Ref<Version>(new Version(
353+
versions.push_back(Ref<Version>(new Version(
356354
14, intArray(4, 6, 26, 46, 66), new ECBlocks(30, new ECB(3, 115), new ECB(1, 116)),
357355
new ECBlocks(24, new ECB(4, 40), new ECB(5, 41)),
358356
new ECBlocks(20, new ECB(11, 16), new ECB(5, 17)),
359357
new ECBlocks(24, new ECB(11, 12), new ECB(5, 13)))));
360-
getVersions().push_back(Ref<Version>(new Version(
358+
versions.push_back(Ref<Version>(new Version(
361359
15, intArray(4, 6, 26, 48, 70), new ECBlocks(22, new ECB(5, 87), new ECB(1, 88)),
362360
new ECBlocks(24, new ECB(5, 41), new ECB(5, 42)),
363361
new ECBlocks(30, new ECB(5, 24), new ECB(7, 25)),
364362
new ECBlocks(24, new ECB(11, 12), new ECB(7, 13)))));
365-
getVersions().push_back(Ref<Version>(new Version(
363+
versions.push_back(Ref<Version>(new Version(
366364
16, intArray(4, 6, 26, 50, 74), new ECBlocks(24, new ECB(5, 98), new ECB(1, 99)),
367365
new ECBlocks(28, new ECB(7, 45), new ECB(3, 46)),
368366
new ECBlocks(24, new ECB(15, 19), new ECB(2, 20)),
369367
new ECBlocks(30, new ECB(3, 15), new ECB(13, 16)))));
370-
getVersions().push_back(Ref<Version>(new Version(
368+
versions.push_back(Ref<Version>(new Version(
371369
17, intArray(4, 6, 30, 54, 78), new ECBlocks(28, new ECB(1, 107), new ECB(5, 108)),
372370
new ECBlocks(28, new ECB(10, 46), new ECB(1, 47)),
373371
new ECBlocks(28, new ECB(1, 22), new ECB(15, 23)),
374372
new ECBlocks(28, new ECB(2, 14), new ECB(17, 15)))));
375-
getVersions().push_back(Ref<Version>(new Version(
373+
versions.push_back(Ref<Version>(new Version(
376374
18, intArray(4, 6, 30, 56, 82), new ECBlocks(30, new ECB(5, 120), new ECB(1, 121)),
377375
new ECBlocks(26, new ECB(9, 43), new ECB(4, 44)),
378376
new ECBlocks(28, new ECB(17, 22), new ECB(1, 23)),
379377
new ECBlocks(28, new ECB(2, 14), new ECB(19, 15)))));
380-
getVersions().push_back(Ref<Version>(new Version(
378+
versions.push_back(Ref<Version>(new Version(
381379
19, intArray(4, 6, 30, 58, 86), new ECBlocks(28, new ECB(3, 113), new ECB(4, 114)),
382380
new ECBlocks(26, new ECB(3, 44), new ECB(11, 45)),
383381
new ECBlocks(26, new ECB(17, 21), new ECB(4, 22)),
384382
new ECBlocks(26, new ECB(9, 13), new ECB(16, 14)))));
385-
getVersions().push_back(Ref<Version>(new Version(
383+
versions.push_back(Ref<Version>(new Version(
386384
20, intArray(4, 6, 34, 62, 90), new ECBlocks(28, new ECB(3, 107), new ECB(5, 108)),
387385
new ECBlocks(26, new ECB(3, 41), new ECB(13, 42)),
388386
new ECBlocks(30, new ECB(15, 24), new ECB(5, 25)),
389387
new ECBlocks(28, new ECB(15, 15), new ECB(10, 16)))));
390-
getVersions().push_back(Ref<Version>(new Version(
388+
versions.push_back(Ref<Version>(new Version(
391389
21, intArray(5, 6, 28, 50, 72, 94), new ECBlocks(28, new ECB(4, 116), new ECB(4, 117)),
392390
new ECBlocks(26, new ECB(17, 42)), new ECBlocks(28, new ECB(17, 22), new ECB(6, 23)),
393391
new ECBlocks(30, new ECB(19, 16), new ECB(6, 17)))));
394-
getVersions().push_back(Ref<Version>(new Version(
392+
versions.push_back(Ref<Version>(new Version(
395393
22, intArray(5, 6, 26, 50, 74, 98), new ECBlocks(28, new ECB(2, 111), new ECB(7, 112)),
396394
new ECBlocks(28, new ECB(17, 46)), new ECBlocks(30, new ECB(7, 24), new ECB(16, 25)),
397395
new ECBlocks(24, new ECB(34, 13)))));
398-
getVersions().push_back(Ref<Version>(new Version(
396+
versions.push_back(Ref<Version>(new Version(
399397
23, intArray(5, 6, 30, 54, 78, 102), new ECBlocks(30, new ECB(4, 121), new ECB(5, 122)),
400398
new ECBlocks(28, new ECB(4, 47), new ECB(14, 48)),
401399
new ECBlocks(30, new ECB(11, 24), new ECB(14, 25)),
402400
new ECBlocks(30, new ECB(16, 15), new ECB(14, 16)))));
403-
getVersions().push_back(Ref<Version>(new Version(
401+
versions.push_back(Ref<Version>(new Version(
404402
24, intArray(5, 6, 28, 54, 80, 106), new ECBlocks(30, new ECB(6, 117), new ECB(4, 118)),
405403
new ECBlocks(28, new ECB(6, 45), new ECB(14, 46)),
406404
new ECBlocks(30, new ECB(11, 24), new ECB(16, 25)),
407405
new ECBlocks(30, new ECB(30, 16), new ECB(2, 17)))));
408-
getVersions().push_back(Ref<Version>(new Version(
406+
versions.push_back(Ref<Version>(new Version(
409407
25, intArray(5, 6, 32, 58, 84, 110), new ECBlocks(26, new ECB(8, 106), new ECB(4, 107)),
410408
new ECBlocks(28, new ECB(8, 47), new ECB(13, 48)),
411409
new ECBlocks(30, new ECB(7, 24), new ECB(22, 25)),
412410
new ECBlocks(30, new ECB(22, 15), new ECB(13, 16)))));
413-
getVersions().push_back(Ref<Version>(new Version(
411+
versions.push_back(Ref<Version>(new Version(
414412
26, intArray(5, 6, 30, 58, 86, 114), new ECBlocks(28, new ECB(10, 114), new ECB(2, 115)),
415413
new ECBlocks(28, new ECB(19, 46), new ECB(4, 47)),
416414
new ECBlocks(28, new ECB(28, 22), new ECB(6, 23)),
417415
new ECBlocks(30, new ECB(33, 16), new ECB(4, 17)))));
418-
getVersions().push_back(Ref<Version>(new Version(
416+
versions.push_back(Ref<Version>(new Version(
419417
27, intArray(5, 6, 34, 62, 90, 118), new ECBlocks(30, new ECB(8, 122), new ECB(4, 123)),
420418
new ECBlocks(28, new ECB(22, 45), new ECB(3, 46)),
421419
new ECBlocks(30, new ECB(8, 23), new ECB(26, 24)),
422420
new ECBlocks(30, new ECB(12, 15), new ECB(28, 16)))));
423-
getVersions().push_back(
421+
versions.push_back(
424422
Ref<Version>(new Version(28, intArray(6, 6, 26, 50, 74, 98, 122),
425423
new ECBlocks(30, new ECB(3, 117), new ECB(10, 118)),
426424
new ECBlocks(28, new ECB(3, 45), new ECB(23, 46)),
427425
new ECBlocks(30, new ECB(4, 24), new ECB(31, 25)),
428426
new ECBlocks(30, new ECB(11, 15), new ECB(31, 16)))));
429-
getVersions().push_back(
427+
versions.push_back(
430428
Ref<Version>(new Version(29, intArray(6, 6, 30, 54, 78, 102, 126),
431429
new ECBlocks(30, new ECB(7, 116), new ECB(7, 117)),
432430
new ECBlocks(28, new ECB(21, 45), new ECB(7, 46)),
433431
new ECBlocks(30, new ECB(1, 23), new ECB(37, 24)),
434432
new ECBlocks(30, new ECB(19, 15), new ECB(26, 16)))));
435-
getVersions().push_back(
433+
versions.push_back(
436434
Ref<Version>(new Version(30, intArray(6, 6, 26, 52, 78, 104, 130),
437435
new ECBlocks(30, new ECB(5, 115), new ECB(10, 116)),
438436
new ECBlocks(28, new ECB(19, 47), new ECB(10, 48)),
439437
new ECBlocks(30, new ECB(15, 24), new ECB(25, 25)),
440438
new ECBlocks(30, new ECB(23, 15), new ECB(25, 16)))));
441-
getVersions().push_back(
439+
versions.push_back(
442440
Ref<Version>(new Version(31, intArray(6, 6, 30, 56, 82, 108, 134),
443441
new ECBlocks(30, new ECB(13, 115), new ECB(3, 116)),
444442
new ECBlocks(28, new ECB(2, 46), new ECB(29, 47)),
445443
new ECBlocks(30, new ECB(42, 24), new ECB(1, 25)),
446444
new ECBlocks(30, new ECB(23, 15), new ECB(28, 16)))));
447-
getVersions().push_back(Ref<Version>(
445+
versions.push_back(Ref<Version>(
448446
new Version(32, intArray(6, 6, 34, 60, 86, 112, 138), new ECBlocks(30, new ECB(17, 115)),
449447
new ECBlocks(28, new ECB(10, 46), new ECB(23, 47)),
450448
new ECBlocks(30, new ECB(10, 24), new ECB(35, 25)),
451449
new ECBlocks(30, new ECB(19, 15), new ECB(35, 16)))));
452-
getVersions().push_back(
450+
versions.push_back(
453451
Ref<Version>(new Version(33, intArray(6, 6, 30, 58, 86, 114, 142),
454452
new ECBlocks(30, new ECB(17, 115), new ECB(1, 116)),
455453
new ECBlocks(28, new ECB(14, 46), new ECB(21, 47)),
456454
new ECBlocks(30, new ECB(29, 24), new ECB(19, 25)),
457455
new ECBlocks(30, new ECB(11, 15), new ECB(46, 16)))));
458-
getVersions().push_back(
456+
versions.push_back(
459457
Ref<Version>(new Version(34, intArray(6, 6, 34, 62, 90, 118, 146),
460458
new ECBlocks(30, new ECB(13, 115), new ECB(6, 116)),
461459
new ECBlocks(28, new ECB(14, 46), new ECB(23, 47)),
462460
new ECBlocks(30, new ECB(44, 24), new ECB(7, 25)),
463461
new ECBlocks(30, new ECB(59, 16), new ECB(1, 17)))));
464-
getVersions().push_back(
462+
versions.push_back(
465463
Ref<Version>(new Version(35, intArray(7, 6, 30, 54, 78, 102, 126, 150),
466464
new ECBlocks(30, new ECB(12, 121), new ECB(7, 122)),
467465
new ECBlocks(28, new ECB(12, 47), new ECB(26, 48)),
468466
new ECBlocks(30, new ECB(39, 24), new ECB(14, 25)),
469467
new ECBlocks(30, new ECB(22, 15), new ECB(41, 16)))));
470-
getVersions().push_back(
468+
versions.push_back(
471469
Ref<Version>(new Version(36, intArray(7, 6, 24, 50, 76, 102, 128, 154),
472470
new ECBlocks(30, new ECB(6, 121), new ECB(14, 122)),
473471
new ECBlocks(28, new ECB(6, 47), new ECB(34, 48)),
474472
new ECBlocks(30, new ECB(46, 24), new ECB(10, 25)),
475473
new ECBlocks(30, new ECB(2, 15), new ECB(64, 16)))));
476-
getVersions().push_back(
474+
versions.push_back(
477475
Ref<Version>(new Version(37, intArray(7, 6, 28, 54, 80, 106, 132, 158),
478476
new ECBlocks(30, new ECB(17, 122), new ECB(4, 123)),
479477
new ECBlocks(28, new ECB(29, 46), new ECB(14, 47)),
480478
new ECBlocks(30, new ECB(49, 24), new ECB(10, 25)),
481479
new ECBlocks(30, new ECB(24, 15), new ECB(46, 16)))));
482-
getVersions().push_back(
480+
versions.push_back(
483481
Ref<Version>(new Version(38, intArray(7, 6, 32, 58, 84, 110, 136, 162),
484482
new ECBlocks(30, new ECB(4, 122), new ECB(18, 123)),
485483
new ECBlocks(28, new ECB(13, 46), new ECB(32, 47)),
486484
new ECBlocks(30, new ECB(48, 24), new ECB(14, 25)),
487485
new ECBlocks(30, new ECB(42, 15), new ECB(32, 16)))));
488-
getVersions().push_back(
486+
versions.push_back(
489487
Ref<Version>(new Version(39, intArray(7, 6, 26, 54, 82, 110, 138, 166),
490488
new ECBlocks(30, new ECB(20, 117), new ECB(4, 118)),
491489
new ECBlocks(28, new ECB(40, 47), new ECB(7, 48)),
492490
new ECBlocks(30, new ECB(43, 24), new ECB(22, 25)),
493491
new ECBlocks(30, new ECB(10, 15), new ECB(67, 16)))));
494-
getVersions().push_back(
492+
versions.push_back(
495493
Ref<Version>(new Version(40, intArray(7, 6, 30, 58, 86, 114, 142, 170),
496494
new ECBlocks(30, new ECB(19, 118), new ECB(6, 119)),
497495
new ECBlocks(28, new ECB(18, 47), new ECB(31, 48)),
498496
new ECBlocks(30, new ECB(34, 24), new ECB(34, 25)),
499497
new ECBlocks(30, new ECB(20, 15), new ECB(61, 16)))));
500-
return getVersions().size();
498+
return versions;
501499
}
502500

503501
} // namespace qrcode

0 commit comments

Comments
 (0)