Overview
Comment: | Use a regular int for the tagged pointer class ID |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | tagged-pointers |
Files: | files | file ages | folders |
SHA3-256: |
a8d453813ca8007658d52532885acd9c |
User & Date: | js on 2020-07-04 00:40:47 |
Other Links: | branch diff | manifest | tags |
Context
2020-07-04
| ||
11:51 | lookup-asm-sparc64-elf.S: Support tagged pointers check-in: 09e046628e user: js tags: tagged-pointers | |
00:40 | Use a regular int for the tagged pointer class ID check-in: a8d453813c user: js tags: tagged-pointers | |
00:24 | Only use 4 bits to classify tagged pointers check-in: 943cf97843 user: js tags: tagged-pointers | |
Changes
Modified src/runtime/ObjFWRT.h from [419dceb932] to [852e5138d0].
︙ | |||
240 241 242 243 244 245 246 | 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 | - + - + - | objc_enumeration_mutation_handler_t _Nullable handler); extern id _Nullable objc_constructInstance(Class _Nullable class_, void *_Nullable bytes); extern void *_Nullable objc_destructInstance(id _Nullable object); extern void *_Null_unspecified objc_autoreleasePoolPush(void); extern void objc_autoreleasePoolPop(void *_Null_unspecified pool); extern id _Nullable _objc_rootAutorelease(id _Nullable object); |
︙ |
Modified src/runtime/amiga-glue.m from [bd99617da7] to [3dbec0ba16].
︙ | |||
796 797 798 799 800 801 802 | 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 | - + | glue_objc_hashtable_free PPC_PARAMS(struct objc_hashtable *table) { M68K_ARG(struct objc_hashtable *, table, a0) objc_hashtable_free(table); } |
︙ | |||
821 822 823 824 825 826 827 | 821 822 823 824 825 826 827 828 829 830 831 832 833 834 | - + - + | { M68K_ARG(id, object, a0) return object_getTaggedPointerValue(object); } id |
Modified src/runtime/amiga-library.m from [ee22f330db] to [7a20b4c30e].
︙ | |||
143 144 145 146 147 148 149 | 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | - + | extern void glue_objc_autoreleasePoolPop(void); extern id glue__objc_rootAutorelease(void); extern struct objc_hashtable *glue_objc_hashtable_new(void); extern void glue_objc_hashtable_set(void); extern void *glue_objc_hashtable_get(void); extern void glue_objc_hashtable_delete(void); extern void glue_objc_hashtable_free(void); |
︙ |
Modified src/runtime/amigaos3.sfd from [bce272de78] to [a0d1b4c012].
︙ | |||
86 87 88 89 90 91 92 | 86 87 88 89 90 91 92 93 94 95 96 97 | - + - + | * The following functions are private! Don't use! struct objc_hashtable *_Nonnull glue_objc_hashtable_new(objc_hashtable_hash_func hash, objc_hashtable_equal_func equal, uint32_t size)(a0,a1,d0) void glue_objc_hashtable_set(struct objc_hashtable *_Nonnull table, const void *_Nonnull key, const void *_Nonnull object)(a0,a1,a2) void *_Nullable glue_objc_hashtable_get(struct objc_hashtable *_Nonnull table, const void *_Nonnull key)(a0,a1) void glue_objc_hashtable_delete(struct objc_hashtable *_Nonnull table, const void *_Nonnull key)(a0,a1) void glue_objc_hashtable_free(struct objc_hashtable *_Nonnull table)(a0) * Public functions again |
Modified src/runtime/linklib/linklib.m from [8bd799cb5a] to [b0ccaf3f6e].
︙ | |||
704 705 706 707 708 709 710 | 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 | + - - - - - + + + + + + + + + + + + + + + + + + + + + + | void objc_hashtable_free(struct objc_hashtable *table) { glue_objc_hashtable_free(table); } int |
Modified src/runtime/morphos-clib.h from [5d4187d2f7] to [003198598f].
︙ | |||
81 82 83 84 85 86 87 | 81 82 83 84 85 86 87 88 89 90 91 | - + - + | /* The following functions are private! Don't use! */ struct objc_hashtable *glue_objc_hashtable_new(objc_hashtable_hash_func, objc_hashtable_equal_func, uint32_t); void glue_objc_hashtable_set(struct objc_hashtable *, const void *, const void *); void *glue_objc_hashtable_get(struct objc_hashtable *, const void *); void glue_objc_hashtable_delete(struct objc_hashtable *, const void *); void glue_objc_hashtable_free(struct objc_hashtable *); /* Public functions again */ |
Modified src/runtime/tagged-pointer.m from [1f64e311ce] to [eeba4c306c].
︙ | |||
19 20 21 22 23 24 25 | 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | - + - + - + | #import "private.h" #define TAGGED_POINTER_BITS 4 #define NUM_TAGGED_POINTER_CLASSES (1 << (TAGGED_POINTER_BITS - 1)) Class objc_tagged_pointer_classes[NUM_TAGGED_POINTER_CLASSES]; |
︙ | |||
66 67 68 69 70 71 72 | 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | - + - + | pointer >>= TAGGED_POINTER_BITS; return pointer; } id |