forked from loongly/PureScript
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStringStore.cs
More file actions
45 lines (38 loc) · 864 Bytes
/
StringStore.cs
File metadata and controls
45 lines (38 loc) · 864 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
#if !WRAPPER_SIDE
using AOT;
#endif
internal static class StringStore
{
#if !WRAPPER_SIDE
[MonoPInvokeCallback(typeof(Custom.StoreStringType))]
#endif
public unsafe static int OnReceiveStr(char* c)
{
var str = new string(c);
var h = ObjectStore.Store(str);
return h;
}
public unsafe static int Store(string str)
{
var h = ObjectStore.GetHandle(str);
if (h > 0)
return h;
int handle;
fixed (char* chr = str)
{
handle = Custom.StoreString(chr);
}
ObjectStore.Store(str, handle);
return handle;
}
public static string Get(int handle)
{
return (string)ObjectStore.Get(handle);
}
}