@@ -493,21 +493,21 @@ def store_string_into_range(opts, v):
493
493
match opts.string_encoding:
494
494
case ' utf8' :
495
495
match src_simple_encoding:
496
- case ' utf8' : return store_string_copy(opts, src, src_code_units, 1 , ' utf-8' )
496
+ case ' utf8' : return store_string_copy(opts, src, src_code_units, 1 , 1 , ' utf-8' )
497
497
case ' utf16' : return store_utf16_to_utf8(opts, src, src_code_units)
498
498
case ' latin1' : return store_latin1_to_utf8(opts, src, src_code_units)
499
499
case ' utf16' :
500
500
match src_simple_encoding:
501
501
case ' utf8' : return store_utf8_to_utf16(opts, src, src_code_units)
502
- case ' utf16' : return store_string_copy(opts, src, src_code_units, 2 , ' utf-16-le' )
503
- case ' latin1' : return store_string_copy(opts, src, src_code_units, 2 , ' utf-16-le' )
502
+ case ' utf16' : return store_string_copy(opts, src, src_code_units, 2 , 2 , ' utf-16-le' )
503
+ case ' latin1' : return store_string_copy(opts, src, src_code_units, 2 , 2 , ' utf-16-le' )
504
504
case ' latin1+utf16' :
505
505
match src_encoding:
506
506
case ' utf8' : return store_string_to_latin1_or_utf16(opts, src, src_code_units)
507
507
case ' utf16' : return store_string_to_latin1_or_utf16(opts, src, src_code_units)
508
508
case ' latin1+utf16' :
509
509
match src_simple_encoding:
510
- case ' latin1' : return store_string_copy(opts, src, src_code_units, 1 , ' latin-1' )
510
+ case ' latin1' : return store_string_copy(opts, src, src_code_units, 1 , 2 , ' latin-1' )
511
511
case ' utf16' : return store_probably_utf16_to_latin1_or_utf16(opts, src, src_code_units)
512
512
```
513
513
@@ -517,10 +517,10 @@ byte after every Latin-1 byte).
517
517
``` python
518
518
MAX_STRING_BYTE_LENGTH = (1 << 31 ) - 1
519
519
520
- def store_string_copy (opts , src , src_code_units , dst_code_unit_size , dst_encoding ):
520
+ def store_string_copy (opts , src , src_code_units , dst_code_unit_size , dst_alignment , dst_encoding ):
521
521
dst_byte_length = dst_code_unit_size * src_code_units
522
522
trap_if(dst_byte_length > MAX_STRING_BYTE_LENGTH )
523
- ptr = opts.realloc(0 , 0 , dst_code_unit_size , dst_byte_length)
523
+ ptr = opts.realloc(0 , 0 , dst_alignment , dst_byte_length)
524
524
encoded = src.encode(dst_encoding)
525
525
assert (dst_byte_length == len (encoded))
526
526
opts.memory[ptr : ptr+ len (encoded)] = encoded
@@ -863,7 +863,7 @@ def lift_flat_signed(vi, core_width, t_width):
863
863
assert (0 <= i < (1 << core_width))
864
864
i %= (1 << t_width)
865
865
if i >= (1 << (t_width - 1 )):
866
- return i - (1 << ( t_width - 1 ) )
866
+ return i - (1 << t_width)
867
867
return i
868
868
```
869
869
0 commit comments