postgres.git / summary / log / commit / refs
commit 23116d5437d0e8d077e7fd5391f5fa0fc781b7d2
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: Sun May 24 16:40:38 2015 +0000
First released in: 9.5.0
Add a bit more commentary about regex's colormap tree data structure.
Per an off-list question from Piotr Stefaniak.
src/include/regex/regguts.h | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/include/regex/regguts.h b/src/include/regex/regguts.h
index 7d5d85577d6..2f3be1aa0ae 100644
--- a/src/include/regex/regguts.h
+++ b/src/include/regex/regguts.h
@@ -162,6 +162,10 @@ typedef int pcolor; /* what color promotes to */
* deep (in the past it was shallower during construction but was "filled"
* to full depth at the end of that); areas that are unaltered as yet point
* to "fill blocks" which are entirely WHITE in color.
+ *
+ * Leaf-level tree blocks are of type "struct colors", while upper-level
+ * blocks are of type "struct ptrs". Pointers into the tree are generally
+ * declared as "union tree *" to be agnostic about what level they point to.
*/
/* the tree itself */
@@ -179,6 +183,7 @@ union tree
struct ptrs ptrs;
};
+/* use these pseudo-field names when dereferencing a "union tree" pointer */
#define tcolor colors.ccolor
#define tptr ptrs.pptr
[parent: 91e79260f636]