-/* How to protect an integer. */
-#define unwind_protect_int(X) \
- do \
- { \
- UWP u; \
- u.i = (X); \
- unwind_protect_var (&(X), u.s, sizeof (int)); \
- } \
- while (0)
-
-#define unwind_protect_short(X) \
- unwind_protect_var ((int *)&(X), (char *)&(X), sizeof (short))
-
-/* How to protect a pointer to a string. */
-#define unwind_protect_string(X) \
- unwind_protect_var ((int *)&(X), (X), sizeof (char *))
-
-/* How to protect any old pointer. */
-#define unwind_protect_pointer(X) unwind_protect_string (X)
+/* How to protect a variable. */
+#define unwind_protect_var(X) unwind_protect_mem ((char *)&(X), sizeof (X))
+extern void unwind_protect_mem __P((char *, int));