@@ -34,6 +34,20 @@ extern "C" {
34
34
}
35
35
36
36
37
+ /* bytes objects */
38
+
39
+ #define _PyBytes_SIMPLE_INIT (CH , LEN ) \
40
+ { \
41
+ _PyVarObject_IMMORTAL_INIT(&PyBytes_Type, LEN), \
42
+ .ob_shash = -1, \
43
+ .ob_sval = { CH }, \
44
+ }
45
+ #define _PyBytes_CHAR_INIT (CH ) \
46
+ { \
47
+ _PyBytes_SIMPLE_INIT(CH, 1) \
48
+ }
49
+
50
+
37
51
/**********************
38
52
* the global objects *
39
53
**********************/
@@ -54,6 +68,12 @@ struct _Py_global_objects {
54
68
* -_PY_NSMALLNEGINTS (inclusive) to _PY_NSMALLPOSINTS (exclusive).
55
69
*/
56
70
PyLongObject small_ints [_PY_NSMALLNEGINTS + _PY_NSMALLPOSINTS ];
71
+
72
+ PyBytesObject bytes_empty ;
73
+ struct {
74
+ PyBytesObject ob ;
75
+ char eos ;
76
+ } bytes_characters [256 ];
57
77
} singletons ;
58
78
};
59
79
@@ -323,6 +343,266 @@ struct _Py_global_objects {
323
343
_PyLong_DIGIT_INIT(255), \
324
344
_PyLong_DIGIT_INIT(256), \
325
345
}, \
346
+ \
347
+ .bytes_empty = _PyBytes_SIMPLE_INIT(0, 0), \
348
+ .bytes_characters = { \
349
+ _PyBytes_CHAR_INIT(0), \
350
+ _PyBytes_CHAR_INIT(1), \
351
+ _PyBytes_CHAR_INIT(2), \
352
+ _PyBytes_CHAR_INIT(3), \
353
+ _PyBytes_CHAR_INIT(4), \
354
+ _PyBytes_CHAR_INIT(5), \
355
+ _PyBytes_CHAR_INIT(6), \
356
+ _PyBytes_CHAR_INIT(7), \
357
+ _PyBytes_CHAR_INIT(8), \
358
+ _PyBytes_CHAR_INIT(9), \
359
+ _PyBytes_CHAR_INIT(10), \
360
+ _PyBytes_CHAR_INIT(11), \
361
+ _PyBytes_CHAR_INIT(12), \
362
+ _PyBytes_CHAR_INIT(13), \
363
+ _PyBytes_CHAR_INIT(14), \
364
+ _PyBytes_CHAR_INIT(15), \
365
+ _PyBytes_CHAR_INIT(16), \
366
+ _PyBytes_CHAR_INIT(17), \
367
+ _PyBytes_CHAR_INIT(18), \
368
+ _PyBytes_CHAR_INIT(19), \
369
+ _PyBytes_CHAR_INIT(20), \
370
+ _PyBytes_CHAR_INIT(21), \
371
+ _PyBytes_CHAR_INIT(22), \
372
+ _PyBytes_CHAR_INIT(23), \
373
+ _PyBytes_CHAR_INIT(24), \
374
+ _PyBytes_CHAR_INIT(25), \
375
+ _PyBytes_CHAR_INIT(26), \
376
+ _PyBytes_CHAR_INIT(27), \
377
+ _PyBytes_CHAR_INIT(28), \
378
+ _PyBytes_CHAR_INIT(29), \
379
+ _PyBytes_CHAR_INIT(30), \
380
+ _PyBytes_CHAR_INIT(31), \
381
+ _PyBytes_CHAR_INIT(32), \
382
+ _PyBytes_CHAR_INIT(33), \
383
+ _PyBytes_CHAR_INIT(34), \
384
+ _PyBytes_CHAR_INIT(35), \
385
+ _PyBytes_CHAR_INIT(36), \
386
+ _PyBytes_CHAR_INIT(37), \
387
+ _PyBytes_CHAR_INIT(38), \
388
+ _PyBytes_CHAR_INIT(39), \
389
+ _PyBytes_CHAR_INIT(40), \
390
+ _PyBytes_CHAR_INIT(41), \
391
+ _PyBytes_CHAR_INIT(42), \
392
+ _PyBytes_CHAR_INIT(43), \
393
+ _PyBytes_CHAR_INIT(44), \
394
+ _PyBytes_CHAR_INIT(45), \
395
+ _PyBytes_CHAR_INIT(46), \
396
+ _PyBytes_CHAR_INIT(47), \
397
+ _PyBytes_CHAR_INIT(48), \
398
+ _PyBytes_CHAR_INIT(49), \
399
+ _PyBytes_CHAR_INIT(50), \
400
+ _PyBytes_CHAR_INIT(51), \
401
+ _PyBytes_CHAR_INIT(52), \
402
+ _PyBytes_CHAR_INIT(53), \
403
+ _PyBytes_CHAR_INIT(54), \
404
+ _PyBytes_CHAR_INIT(55), \
405
+ _PyBytes_CHAR_INIT(56), \
406
+ _PyBytes_CHAR_INIT(57), \
407
+ _PyBytes_CHAR_INIT(58), \
408
+ _PyBytes_CHAR_INIT(59), \
409
+ _PyBytes_CHAR_INIT(60), \
410
+ _PyBytes_CHAR_INIT(61), \
411
+ _PyBytes_CHAR_INIT(62), \
412
+ _PyBytes_CHAR_INIT(63), \
413
+ _PyBytes_CHAR_INIT(64), \
414
+ _PyBytes_CHAR_INIT(65), \
415
+ _PyBytes_CHAR_INIT(66), \
416
+ _PyBytes_CHAR_INIT(67), \
417
+ _PyBytes_CHAR_INIT(68), \
418
+ _PyBytes_CHAR_INIT(69), \
419
+ _PyBytes_CHAR_INIT(70), \
420
+ _PyBytes_CHAR_INIT(71), \
421
+ _PyBytes_CHAR_INIT(72), \
422
+ _PyBytes_CHAR_INIT(73), \
423
+ _PyBytes_CHAR_INIT(74), \
424
+ _PyBytes_CHAR_INIT(75), \
425
+ _PyBytes_CHAR_INIT(76), \
426
+ _PyBytes_CHAR_INIT(77), \
427
+ _PyBytes_CHAR_INIT(78), \
428
+ _PyBytes_CHAR_INIT(79), \
429
+ _PyBytes_CHAR_INIT(80), \
430
+ _PyBytes_CHAR_INIT(81), \
431
+ _PyBytes_CHAR_INIT(82), \
432
+ _PyBytes_CHAR_INIT(83), \
433
+ _PyBytes_CHAR_INIT(84), \
434
+ _PyBytes_CHAR_INIT(85), \
435
+ _PyBytes_CHAR_INIT(86), \
436
+ _PyBytes_CHAR_INIT(87), \
437
+ _PyBytes_CHAR_INIT(88), \
438
+ _PyBytes_CHAR_INIT(89), \
439
+ _PyBytes_CHAR_INIT(90), \
440
+ _PyBytes_CHAR_INIT(91), \
441
+ _PyBytes_CHAR_INIT(92), \
442
+ _PyBytes_CHAR_INIT(93), \
443
+ _PyBytes_CHAR_INIT(94), \
444
+ _PyBytes_CHAR_INIT(95), \
445
+ _PyBytes_CHAR_INIT(96), \
446
+ _PyBytes_CHAR_INIT(97), \
447
+ _PyBytes_CHAR_INIT(98), \
448
+ _PyBytes_CHAR_INIT(99), \
449
+ _PyBytes_CHAR_INIT(100), \
450
+ _PyBytes_CHAR_INIT(101), \
451
+ _PyBytes_CHAR_INIT(102), \
452
+ _PyBytes_CHAR_INIT(103), \
453
+ _PyBytes_CHAR_INIT(104), \
454
+ _PyBytes_CHAR_INIT(105), \
455
+ _PyBytes_CHAR_INIT(106), \
456
+ _PyBytes_CHAR_INIT(107), \
457
+ _PyBytes_CHAR_INIT(108), \
458
+ _PyBytes_CHAR_INIT(109), \
459
+ _PyBytes_CHAR_INIT(110), \
460
+ _PyBytes_CHAR_INIT(111), \
461
+ _PyBytes_CHAR_INIT(112), \
462
+ _PyBytes_CHAR_INIT(113), \
463
+ _PyBytes_CHAR_INIT(114), \
464
+ _PyBytes_CHAR_INIT(115), \
465
+ _PyBytes_CHAR_INIT(116), \
466
+ _PyBytes_CHAR_INIT(117), \
467
+ _PyBytes_CHAR_INIT(118), \
468
+ _PyBytes_CHAR_INIT(119), \
469
+ _PyBytes_CHAR_INIT(120), \
470
+ _PyBytes_CHAR_INIT(121), \
471
+ _PyBytes_CHAR_INIT(122), \
472
+ _PyBytes_CHAR_INIT(123), \
473
+ _PyBytes_CHAR_INIT(124), \
474
+ _PyBytes_CHAR_INIT(125), \
475
+ _PyBytes_CHAR_INIT(126), \
476
+ _PyBytes_CHAR_INIT(127), \
477
+ _PyBytes_CHAR_INIT(128), \
478
+ _PyBytes_CHAR_INIT(129), \
479
+ _PyBytes_CHAR_INIT(130), \
480
+ _PyBytes_CHAR_INIT(131), \
481
+ _PyBytes_CHAR_INIT(132), \
482
+ _PyBytes_CHAR_INIT(133), \
483
+ _PyBytes_CHAR_INIT(134), \
484
+ _PyBytes_CHAR_INIT(135), \
485
+ _PyBytes_CHAR_INIT(136), \
486
+ _PyBytes_CHAR_INIT(137), \
487
+ _PyBytes_CHAR_INIT(138), \
488
+ _PyBytes_CHAR_INIT(139), \
489
+ _PyBytes_CHAR_INIT(140), \
490
+ _PyBytes_CHAR_INIT(141), \
491
+ _PyBytes_CHAR_INIT(142), \
492
+ _PyBytes_CHAR_INIT(143), \
493
+ _PyBytes_CHAR_INIT(144), \
494
+ _PyBytes_CHAR_INIT(145), \
495
+ _PyBytes_CHAR_INIT(146), \
496
+ _PyBytes_CHAR_INIT(147), \
497
+ _PyBytes_CHAR_INIT(148), \
498
+ _PyBytes_CHAR_INIT(149), \
499
+ _PyBytes_CHAR_INIT(150), \
500
+ _PyBytes_CHAR_INIT(151), \
501
+ _PyBytes_CHAR_INIT(152), \
502
+ _PyBytes_CHAR_INIT(153), \
503
+ _PyBytes_CHAR_INIT(154), \
504
+ _PyBytes_CHAR_INIT(155), \
505
+ _PyBytes_CHAR_INIT(156), \
506
+ _PyBytes_CHAR_INIT(157), \
507
+ _PyBytes_CHAR_INIT(158), \
508
+ _PyBytes_CHAR_INIT(159), \
509
+ _PyBytes_CHAR_INIT(160), \
510
+ _PyBytes_CHAR_INIT(161), \
511
+ _PyBytes_CHAR_INIT(162), \
512
+ _PyBytes_CHAR_INIT(163), \
513
+ _PyBytes_CHAR_INIT(164), \
514
+ _PyBytes_CHAR_INIT(165), \
515
+ _PyBytes_CHAR_INIT(166), \
516
+ _PyBytes_CHAR_INIT(167), \
517
+ _PyBytes_CHAR_INIT(168), \
518
+ _PyBytes_CHAR_INIT(169), \
519
+ _PyBytes_CHAR_INIT(170), \
520
+ _PyBytes_CHAR_INIT(171), \
521
+ _PyBytes_CHAR_INIT(172), \
522
+ _PyBytes_CHAR_INIT(173), \
523
+ _PyBytes_CHAR_INIT(174), \
524
+ _PyBytes_CHAR_INIT(175), \
525
+ _PyBytes_CHAR_INIT(176), \
526
+ _PyBytes_CHAR_INIT(177), \
527
+ _PyBytes_CHAR_INIT(178), \
528
+ _PyBytes_CHAR_INIT(179), \
529
+ _PyBytes_CHAR_INIT(180), \
530
+ _PyBytes_CHAR_INIT(181), \
531
+ _PyBytes_CHAR_INIT(182), \
532
+ _PyBytes_CHAR_INIT(183), \
533
+ _PyBytes_CHAR_INIT(184), \
534
+ _PyBytes_CHAR_INIT(185), \
535
+ _PyBytes_CHAR_INIT(186), \
536
+ _PyBytes_CHAR_INIT(187), \
537
+ _PyBytes_CHAR_INIT(188), \
538
+ _PyBytes_CHAR_INIT(189), \
539
+ _PyBytes_CHAR_INIT(190), \
540
+ _PyBytes_CHAR_INIT(191), \
541
+ _PyBytes_CHAR_INIT(192), \
542
+ _PyBytes_CHAR_INIT(193), \
543
+ _PyBytes_CHAR_INIT(194), \
544
+ _PyBytes_CHAR_INIT(195), \
545
+ _PyBytes_CHAR_INIT(196), \
546
+ _PyBytes_CHAR_INIT(197), \
547
+ _PyBytes_CHAR_INIT(198), \
548
+ _PyBytes_CHAR_INIT(199), \
549
+ _PyBytes_CHAR_INIT(200), \
550
+ _PyBytes_CHAR_INIT(201), \
551
+ _PyBytes_CHAR_INIT(202), \
552
+ _PyBytes_CHAR_INIT(203), \
553
+ _PyBytes_CHAR_INIT(204), \
554
+ _PyBytes_CHAR_INIT(205), \
555
+ _PyBytes_CHAR_INIT(206), \
556
+ _PyBytes_CHAR_INIT(207), \
557
+ _PyBytes_CHAR_INIT(208), \
558
+ _PyBytes_CHAR_INIT(209), \
559
+ _PyBytes_CHAR_INIT(210), \
560
+ _PyBytes_CHAR_INIT(211), \
561
+ _PyBytes_CHAR_INIT(212), \
562
+ _PyBytes_CHAR_INIT(213), \
563
+ _PyBytes_CHAR_INIT(214), \
564
+ _PyBytes_CHAR_INIT(215), \
565
+ _PyBytes_CHAR_INIT(216), \
566
+ _PyBytes_CHAR_INIT(217), \
567
+ _PyBytes_CHAR_INIT(218), \
568
+ _PyBytes_CHAR_INIT(219), \
569
+ _PyBytes_CHAR_INIT(220), \
570
+ _PyBytes_CHAR_INIT(221), \
571
+ _PyBytes_CHAR_INIT(222), \
572
+ _PyBytes_CHAR_INIT(223), \
573
+ _PyBytes_CHAR_INIT(224), \
574
+ _PyBytes_CHAR_INIT(225), \
575
+ _PyBytes_CHAR_INIT(226), \
576
+ _PyBytes_CHAR_INIT(227), \
577
+ _PyBytes_CHAR_INIT(228), \
578
+ _PyBytes_CHAR_INIT(229), \
579
+ _PyBytes_CHAR_INIT(230), \
580
+ _PyBytes_CHAR_INIT(231), \
581
+ _PyBytes_CHAR_INIT(232), \
582
+ _PyBytes_CHAR_INIT(233), \
583
+ _PyBytes_CHAR_INIT(234), \
584
+ _PyBytes_CHAR_INIT(235), \
585
+ _PyBytes_CHAR_INIT(236), \
586
+ _PyBytes_CHAR_INIT(237), \
587
+ _PyBytes_CHAR_INIT(238), \
588
+ _PyBytes_CHAR_INIT(239), \
589
+ _PyBytes_CHAR_INIT(240), \
590
+ _PyBytes_CHAR_INIT(241), \
591
+ _PyBytes_CHAR_INIT(242), \
592
+ _PyBytes_CHAR_INIT(243), \
593
+ _PyBytes_CHAR_INIT(244), \
594
+ _PyBytes_CHAR_INIT(245), \
595
+ _PyBytes_CHAR_INIT(246), \
596
+ _PyBytes_CHAR_INIT(247), \
597
+ _PyBytes_CHAR_INIT(248), \
598
+ _PyBytes_CHAR_INIT(249), \
599
+ _PyBytes_CHAR_INIT(250), \
600
+ _PyBytes_CHAR_INIT(251), \
601
+ _PyBytes_CHAR_INIT(252), \
602
+ _PyBytes_CHAR_INIT(253), \
603
+ _PyBytes_CHAR_INIT(254), \
604
+ _PyBytes_CHAR_INIT(255), \
605
+ }, \
326
606
}, \
327
607
}
328
608
0 commit comments