aboutsummaryrefslogtreecommitdiff
path: root/libxsde/xsde/cxx/serializer/validating/xml-schema-sskel.ixx
diff options
context:
space:
mode:
Diffstat (limited to 'libxsde/xsde/cxx/serializer/validating/xml-schema-sskel.ixx')
-rw-r--r--libxsde/xsde/cxx/serializer/validating/xml-schema-sskel.ixx27
1 files changed, 27 insertions, 0 deletions
diff --git a/libxsde/xsde/cxx/serializer/validating/xml-schema-sskel.ixx b/libxsde/xsde/cxx/serializer/validating/xml-schema-sskel.ixx
index d62fdd4..35ce5d9 100644
--- a/libxsde/xsde/cxx/serializer/validating/xml-schema-sskel.ixx
+++ b/libxsde/xsde/cxx/serializer/validating/xml-schema-sskel.ixx
@@ -458,7 +458,20 @@ namespace xsde
facets_.enum_ = 0;
facets_.enum_count_ = 0;
+
+#ifdef XSDE_REGEXP
+ facets_.pattern_set_ = 0;
+#endif
+ }
+
+#ifdef XSDE_REGEXP
+ inline string_facets::
+ ~string_facets ()
+ {
+ if (facets_.pattern_set_ == 2)
+ xmlRegFreeRegexp (facets_.pattern_.regexp);
}
+#endif
inline void string_facets::
_length_facet (size_t v)
@@ -488,6 +501,20 @@ namespace xsde
facets_.enum_count_ = count;
}
+#ifndef XSDE_REGEXP
+ inline void string_facets::
+ _pattern_facet (const char*)
+ {
+ }
+#else
+ inline void string_facets::
+ _pattern_facet (const char* s)
+ {
+ facets_.pattern_.str = s;
+ facets_.pattern_set_ = 1;
+ }
+#endif
+
// string_sskel
//
#ifdef XSDE_REUSE_STYLE_TIEIN