38 lines
829 B
Text
38 lines
829 B
Text
|
|
NSNumber :: struct {
|
|
// #as using isa: NSObject;
|
|
}
|
|
|
|
#scope_file;
|
|
|
|
Sel :: uptr;
|
|
|
|
sel: struct {
|
|
boolValue: Sel; @boolValue
|
|
intValue: Sel; @intValue
|
|
unsignedIntValue: Sel; @unsignedIntValue
|
|
floatValue: Sel; @floatValue
|
|
doubleValue: Sel; @doubleValue
|
|
}
|
|
|
|
#add_context InitFoundation :: () {
|
|
#import "Basic";
|
|
|
|
tmp: [512]u8;
|
|
|
|
base := (*sel).(*u8);
|
|
info := type_info(type_of(sel));
|
|
for info.members if it.notes.count != 0 {
|
|
name := it.notes[0];
|
|
memcpy(tmp.data, name.data, name.count);
|
|
tmp.data[name.count] = 0;
|
|
|
|
ptr := base + it.offset_in_bytes;
|
|
ptr.* = sel_register_name(tmp.data);
|
|
assert(ptr.* != 0, "failed to register selector: %", name);
|
|
}
|
|
|
|
print("%\n", info.*);
|
|
}
|
|
|
|
Foundation :: #library,system,no_dll,link_always "Foundation";
|