@@ -34,6 +34,20 @@ extern "C" {
3434 }
3535
3636
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+
3751/**********************
3852 * the global objects *
3953 **********************/
@@ -54,6 +68,12 @@ struct _Py_global_objects {
5468 * -_PY_NSMALLNEGINTS (inclusive) to _PY_NSMALLPOSINTS (exclusive).
5569 */
5670 PyLongObject small_ints [_PY_NSMALLNEGINTS + _PY_NSMALLPOSINTS ];
71+
72+ PyBytesObject bytes_empty ;
73+ struct {
74+ PyBytesObject ob ;
75+ char eos ;
76+ } bytes_characters [256 ];
5777 } singletons ;
5878};
5979
@@ -323,6 +343,266 @@ struct _Py_global_objects {
323343 _PyLong_DIGIT_INIT(255), \
324344 _PyLong_DIGIT_INIT(256), \
325345 }, \
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+ }, \
326606 }, \
327607}
328608
0 commit comments