From 23116d5437d0e8d077e7fd5391f5fa0fc781b7d2 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Sun, 24 May 2015 12:40:38 -0400
Subject: [PATCH] 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
 
-- 
GitLab