File: block.h

package info (click to toggle)
ruby-liquid-c 4.2.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 504 kB
  • sloc: ansic: 3,866; ruby: 1,151; makefile: 7
file content (33 lines) | stat: -rw-r--r-- 743 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#if !defined(LIQUID_BLOCK_H)
#define LIQUID_BLOCK_H

#include "document_body.h"
#include "vm_assembler_pool.h"

typedef struct block_body {
    bool compiled;
    VALUE obj;

    union {
        struct {
            document_body_entry_t document_body_entry;
            VALUE nodelist;
        } compiled;
        struct {
            VALUE parse_context;
            vm_assembler_pool_t *vm_assembler_pool;
            bool blank;
            unsigned int render_score;
            vm_assembler_t *code;
        } intermediate;
    } as;
} block_body_t;

void liquid_define_block_body(void);

static inline uint8_t *block_body_instructions_ptr(block_body_header_t *body)
{
    return ((uint8_t *)body) + body->instructions_offset;
}

#endif