Skip to content

Commit

Permalink
Make actor pad automagically calculated
Browse files Browse the repository at this point in the history
Prior to this commit, we had to manually update the actor pad size
if the size of pony_actor_t changed.

This commit makes it so that the actor pad size is now automagically
calculated by the compiler so it doesn't have to be manually maintained
any longer.
  • Loading branch information
dipinhora committed Oct 9, 2024
1 parent 2ef3e4b commit 6ba826b
Showing 1 changed file with 3 additions and 20 deletions.
23 changes: 3 additions & 20 deletions src/libponyrt/actor/actor.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,27 +72,10 @@ typedef struct pony_actor_t

/** Padding for actor types.
*
* 56 bytes: initial header, not including the type descriptor
* 52/104 bytes: heap
* 4/8 bytes: muted counter
* 4/8 bytes: internal flags (after alignment)
* 64/128 bytes: actorstats (if enabled)
* 48/88 bytes: gc
* 24/56 bytes: padding to 64 bytes, ignored
* Size of pony_actor_t minus the padding at the end and the pony_type_t* at the beginning.
*
*/
#if INTPTR_MAX == INT64_MAX
#ifdef USE_RUNTIMESTATS
# define PONY_ACTOR_PAD_SIZE 392
#else
# define PONY_ACTOR_PAD_SIZE 264
#endif
#elif INTPTR_MAX == INT32_MAX
#ifdef USE_RUNTIMESTATS
# define PONY_ACTOR_PAD_SIZE 232
#else
# define PONY_ACTOR_PAD_SIZE 168
#endif
#endif
#define PONY_ACTOR_PAD_SIZE (offsetof(pony_actor_t, gc) + sizeof(gc_t) - sizeof(pony_type_t*))

typedef struct pony_actor_pad_t
{
Expand Down

0 comments on commit 6ba826b

Please sign in to comment.