mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Let memcopy make the null bytes, better py3 support
This commit is contained in:
parent
22a04c1287
commit
c811a70907
1 changed files with 7 additions and 4 deletions
|
@ -355,13 +355,16 @@ class ContiguousUnicode(ctypes.Structure):
|
|||
return buf[:length]
|
||||
return None
|
||||
|
||||
def _set_unicode_buffer(self, value):
|
||||
def _set_unicode_buffer(self, values):
|
||||
cls = type(self)
|
||||
wchar_size = ctypes.sizeof(WCHAR)
|
||||
bufsize = (len(value) + 1) * wchar_size
|
||||
bufsize = (len('\x00'.join(values)) + 1) * wchar_size
|
||||
ctypes.resize(self, ctypes.sizeof(cls) + bufsize)
|
||||
addr = ctypes.addressof(self) + ctypes.sizeof(cls)
|
||||
ctypes.memmove(addr, value, bufsize)
|
||||
for value in values:
|
||||
bufsize = (len(value) + 1) * wchar_size
|
||||
ctypes.memmove(addr, value, bufsize)
|
||||
addr += bufsize
|
||||
|
||||
def _set_unicode_string(self, name, value):
|
||||
values = []
|
||||
|
@ -370,7 +373,7 @@ class ContiguousUnicode(ctypes.Structure):
|
|||
values.append(value or '')
|
||||
else:
|
||||
values.append(getattr(self, n) or '')
|
||||
self._set_unicode_buffer('\x00'.join(values))
|
||||
self._set_unicode_buffer(values)
|
||||
|
||||
cls = type(self)
|
||||
wchar_size = ctypes.sizeof(WCHAR)
|
||||
|
|
Loading…
Add table
Reference in a new issue