Uses 911K of libraries. Click here for Pure Java version (1684L/10K).
1 | !7 |
2 | |
3 | cmodule VirtualObjectsSpike > DynPrintLog {
|
4 | start-thread {
|
5 | new VirtualObject vo; |
6 | print("VO made");
|
7 | vo.setInt(5, 13); |
8 | assertEqualsVerbose(13, vo.getIntAt(5)); |
9 | assertEqualsVerbose(0, vo.getIntAt(3)); |
10 | } |
11 | } |
12 | |
13 | sclass VirtualObject {
|
14 | byte[] byteData; |
15 | O[] pointerData; |
16 | |
17 | int getIntAt(int byteIdx) {
|
18 | ret intFromBytes(byteData, byteIdx); |
19 | } |
20 | |
21 | void setInt(int byteIdx, int i) {
|
22 | setByte(byteIdx+3, 0); |
23 | intToBytes_inArray(i, byteData, byteIdx); |
24 | } |
25 | |
26 | byte getByteAt(int byteIdx) {
|
27 | ret byteData[byteIdx]; |
28 | } |
29 | |
30 | void setByte(int byteIdx, int b) {
|
31 | byteData = byteArraySetWithExponentialGrowth(byteData, byteIdx, (byte) b); |
32 | } |
33 | |
34 | O getPointerAt(int pointerIdx) {
|
35 | ret pointerData[pointerIdx]; |
36 | } |
37 | |
38 | void setPointer(int pointerIdx, O o) {
|
39 | pointerData = arraySetWithExponentialGrowth(pointerData, pointerIdx, o); |
40 | } |
41 | } |
download show line numbers debug dex old transpilations
Travelled to 7 computer(s): bhatertpkbcr, cfunsshuasjs, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tvejysmllsmz, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1023054 |
| Snippet name: | "Virtual" Objects Spike - custom compact object representations v1 [OK] |
| Eternal ID of this version: | #1023054/11 |
| Text MD5: | 7df5ce2a7d3fc8f6667412b66ca3cb23 |
| Transpilation MD5: | 5756d8f053bd753ed757f2e9b8633917 |
| Author: | stefan |
| Category: | javax |
| Type: | JavaX source code (Dynamic Module) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2019-04-29 23:25:01 |
| Source code size: | 916 bytes / 41 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 572 / 792 |
| Version history: | 10 change(s) |
| Referenced in: | [show references] |