aboutsummaryrefslogtreecommitdiff
path: root/crypto/stack/safestack.h
diff options
context:
space:
mode:
authorGeoff Thorpe <geoff@openssl.org>2000-06-01 05:13:52 +0000
committerGeoff Thorpe <geoff@openssl.org>2000-06-01 05:13:52 +0000
commite41c8d6ad4d1ffab51865d8cf90baff108bbe4a1 (patch)
tree0743c50a5fb135a2731e418985504664a071bf7a /crypto/stack/safestack.h
parentccd86b68ef7f9a5cfaaed4089bce29fdc5fe4219 (diff)
downloadopenssl-e41c8d6ad4d1ffab51865d8cf90baff108bbe4a1.zip
openssl-e41c8d6ad4d1ffab51865d8cf90baff108bbe4a1.tar.gz
openssl-e41c8d6ad4d1ffab51865d8cf90baff108bbe4a1.tar.bz2
This change will cause builds (by default) to not use different STACK
structures and functions for each stack type. The previous behaviour can be enabled by configuring with the "-DDEBUG_SAFESTACK" option. This will also cause "make update" (mkdef.pl in particular) to update the libeay.num and ssleay.num symbol tables with the number of extra functions DEBUG_SAFESTACK creates. The way this change works is to accompany each DECLARE_STACK_OF() macro with a set of "#define"d versions of the sk_##type##_*** functions that ensures all the existing "type-safe" stack calls are precompiled into the underlying stack calls. The presence or abscence of the DEBUG_SAFESTACK symbol controls whether this block of "#define"s or the DECLARE_STACK_OF() macro is taking effect. The block of "#define"s is in turn generated and maintained by a perl script (util/mkstack.pl) that encompasses the block with delimiting C comments. This works in a similar way to the auto-generated error codes and, like the other such maintenance utilities, is invoked by the "make update" target. A long (but mundane) commit will follow this with the results of "make update" - this will include all the "#define" blocks for each DECLARE_STACK_OF() statement, along with stripped down libeay.num and ssleay.num files.
Diffstat (limited to 'crypto/stack/safestack.h')
-rw-r--r--crypto/stack/safestack.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/crypto/stack/safestack.h b/crypto/stack/safestack.h
index 6a093201..228b4f8 100644
--- a/crypto/stack/safestack.h
+++ b/crypto/stack/safestack.h
@@ -57,6 +57,8 @@
#include <openssl/stack.h>
+#ifdef DEBUG_SAFESTACK
+
#define STACK_OF(type) struct stack_st_##type
#define PREDECLARE_STACK_OF(type) STACK_OF(type);
@@ -133,4 +135,13 @@ type *sk_##type##_pop(STACK_OF(type) *sk) \
void sk_##type##_sort(STACK_OF(type) *sk) \
{ sk_sort((STACK *)sk); }
+#else
+
+#define STACK_OF(type) STACK
+#define PREDECLARE_STACK_OF(type) /* nada */
+#define DECLARE_STACK_OF(type) /* nada */
+#define IMPLEMENT_STACK_OF(type) /* nada */
+
+#endif
+
#endif /* ndef HEADER_SAFESTACK_H */