BlockImplementation.txt

In BlockImplementation.txt, line 94,

static struct __block_descriptor_1 {
    unsigned long int reserved;
    unsigned long int Block_size;
} __block_descriptor_1 = { 0, sizeof(struct __block_literal_1),
__block_invoke_1 };

Why there is three initializers while the struct only has two members?

Complete description should be:

struct __block_descriptor {
  unsigned long int reserved; // NULL
  unsigned long int Block_size; // sizeof(struct Block_literal_1)

  // optional helper functions
  void *CopyFuncPtr; // When BLOCK_HAS_COPY_DISPOSE is set (withCopyDispose true)
  void *DestroyFuncPtr; // When BLOCK_HAS_COPY_DISPOSE is set (withCopyDispose true)
}

- Fariborz