| /* |
| * Copyright (C) 2026 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| */ |
| |
| #ifndef SRC_PERFETTO_SQL_SYNTAQLITE_INLINE_DISPATCH_H_ |
| #define SRC_PERFETTO_SQL_SYNTAQLITE_INLINE_DISPATCH_H_ |
| |
| /* Inline dialect dispatch for syntaqlite_perfetto.c — replaces the dialect |
| * function-pointer indirection with direct calls. Enabled via |
| * -DSYNTAQLITE_INLINE_DIALECT_DISPATCH=\"...\". */ |
| |
| #define SYNQ_PARSER_ALLOC(d, m, c) SynqPerfettoParseAlloc(m, c) |
| #define SYNQ_PARSER_INIT(d, p, c) SynqPerfettoParseInit(p, c) |
| #define SYNQ_PARSER_FINALIZE(d, p) SynqPerfettoParseFinalize(p) |
| #define SYNQ_PARSER_FREE(d, p, f) SynqPerfettoParseFree(p, f) |
| #define SYNQ_PARSER_FEED(d, p, t, m) SynqPerfettoParse(p, t, m) |
| /* SynqPerfettoParseTrace is only declared under !NDEBUG (Lemon trace hook). */ |
| #ifndef NDEBUG |
| #define SYNQ_PARSER_TRACE(d, f, s) \ |
| do { \ |
| SynqPerfettoParseTrace(f, s); \ |
| } while (0) |
| #else |
| #define SYNQ_PARSER_TRACE(d, f, s) ((void)(d), (void)(f), (void)(s)) |
| #endif |
| #define SYNQ_GET_TOKEN(env, z, t) SynqPerfettoGetToken(env, z, t) |
| |
| #endif // SRC_PERFETTO_SQL_SYNTAQLITE_INLINE_DISPATCH_H_ |