diff options
author | Alexis211 <alexis211@gmail.com> | 2009-10-18 21:56:26 +0200 |
---|---|---|
committer | Alexis211 <alexis211@gmail.com> | 2009-10-18 21:56:26 +0200 |
commit | 0cca2d68451849b5ea96a3620566fd0b42dde3c0 (patch) | |
tree | fcdcaace870a59d0b8f2ccc6abb8418763960dbe /Source/Library/Common/String.class.cpp | |
parent | 776753bfa0c411f4b1a5680409104904961fcbeb (diff) | |
download | Melon-0cca2d68451849b5ea96a3620566fd0b42dde3c0.tar.gz Melon-0cca2d68451849b5ea96a3620566fd0b42dde3c0.zip |
More work on syscalls
Diffstat (limited to 'Source/Library/Common/String.class.cpp')
-rw-r--r-- | Source/Library/Common/String.class.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/Source/Library/Common/String.class.cpp b/Source/Library/Common/String.class.cpp index d8913d9..c217807 100644 --- a/Source/Library/Common/String.class.cpp +++ b/Source/Library/Common/String.class.cpp @@ -49,6 +49,26 @@ String String::number(s32int number) { return ret; } +String String::unserialize(u32int w) { + u32int* a = (u32int*)w; + String ret; + ret.m_length = a[0]; + ret.m_string = (WChar*)Mem::alloc(a[0] * sizeof(WChar)); + for (u32int i = 0; i < a[0]; i++) { + ret[i] = a[i + 1]; + } + return ret; +} + +u32int String::serialize() { + u32int* x = (u32int*)Mem::mkXchgSpace((m_length + 1) * sizeof(u32int)); + x[0] = m_length; + for (u32int i = 0; i < m_length; i++) { + x[i + 1] = m_string[i]; + } + return (u32int)x; +} + String::String(const char* string, u8int encoding) { m_string = 0; m_length = 0; |