From: Justin Viiret Date: Thu, 14 Jan 2016 05:55:39 +0000 (+1100) Subject: RoseRuntimeState no longer needs to be packed X-Git-Tag: v4.2.0^2~160 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9eb328b455bfe0cc0bdf5e577fcc38213c54f45f;p=thirdparty%2Fvectorscan.git RoseRuntimeState no longer needs to be packed This structure only contains u8 values now. In the future we may wish to eliminate it entirely and store the few bits we need more directly. --- diff --git a/src/rose/rose_build_bytecode.cpp b/src/rose/rose_build_bytecode.cpp index c640f091..a042eb2c 100644 --- a/src/rose/rose_build_bytecode.cpp +++ b/src/rose/rose_build_bytecode.cpp @@ -513,9 +513,14 @@ void fillStateOffsets(const RoseBuildImpl &tbi, u32 rolesWithStateCount, u32 activeLeftCount, u32 laggedRoseCount, u32 floatingStreamStateRequired, u32 historyRequired, RoseStateOffsets *so) { - /* runtime state (including role state) first and needs to be u32-aligned */ - u32 curr_offset = sizeof(RoseRuntimeState) - + mmbit_size(rolesWithStateCount); + u32 curr_offset = 0; + + // First, runtime state (stores per-stream state, like whether we need a + // delay rebuild or have been told to halt matching.) + curr_offset += sizeof(RoseRuntimeState); + + // Role state storage. + curr_offset += mmbit_size(rolesWithStateCount); so->activeLeafArray = curr_offset; /* TODO: limit size of array */ curr_offset += mmbit_size(activeArrayCount); diff --git a/src/rose/rose_internal.h b/src/rose/rose_internal.h index a1f91cd3..326887da 100644 --- a/src/rose/rose_internal.h +++ b/src/rose/rose_internal.h @@ -476,19 +476,11 @@ struct RoseEngine { struct scatter_full_plan state_init; }; -#if defined(_WIN32) -#pragma pack(push, 1) -#endif // Rose runtime state struct RoseRuntimeState { u8 flags; /* high bit true if delay rebuild needed */ u8 broken; /* user has requested that we stop matching */ -#if defined(_WIN32) }; -#pragma pack(pop) -#else -} __attribute__((packed)); -#endif struct ALIGN_CL_DIRECTIVE anchored_matcher_info { u32 next_offset; /* relative to this, 0 for end */