Optimize regexp

This commit is contained in:
Xavier Guimard 2015-05-11 04:20:10 +00:00
parent fe2ad66a29
commit 5530412b39

View File

@ -48,6 +48,9 @@ sub unnormalize {
$value =~ s/%0D/\r/g; $value =~ s/%0D/\r/g;
$value =~ s/%0A/\n/g; $value =~ s/%0A/\n/g;
# Keep number as numbers
$value += 0 if ( $value =~ /^(?:0|(?:\-[0-9]|[1-9])[0-9]*)(?:\.[0-9]+)?$/ );
return $value; return $value;
} }
@ -100,56 +103,57 @@ sub unserialize {
$v =~ s/^'(.*)'$/$1/s; $v =~ s/^'(.*)'$/$1/s;
# Manage hashes # Manage hashes
if (
$k =~ /^(?x: # Regexp::Assemble of:
applicationList # applicationList
|authChoiceModules # authChoiceModules
|captchaStorageOptions # captchaStorageOptions
|CAS_proxiedServices # CAS_proxiedServices
|casAttributes # casAttributes
|casStorageOptions # casStorageOptions
|dbiExportedVars # dbiExportedVars
|demoExportedVars # demoExportedVars
|exportedHeaders # exportedHeaders
|exportedVars # exportedVars
|facebookExportedVars # facebookExportedVars
|globalStorageOptions # globalStorageOptions
|googleExportedVars # googleExportedVars
|grantSessionRules # grantSessionRules
|groups # groups
|ldapExportedVars # ldapExportedVars
|localSessionStorageOptions # localSessionStorageOptions
|locationRules # locationRules
|logoutServices # logoutServices
|macros # macros
|notificationStorageOptions # notificationStorageOptions
|oidcOPMetaDataExportedVars # oidcOPMetaDataExportedVars
|oidcOPMetaDataJSON # oidcOPMetaDataJSON
|oidcOPMetaDataJWKS # oidcOPMetaDataJWKS
|oidcOPMetaDataOptions # oidcOPMetaDataOptions
|oidcRPMetaDataExportedVars # oidcRPMetaDataExportedVars
|oidcRPMetaDataOptions # oidcRPMetaDataOptions
|oidcServiceMetaDataAuthnContext # oidcServiceMetaDataAuthnContext
|openIdExportedVars # openIdExportedVars
|persistentStorageOptions # persistentStorageOptions
|portalSkinRules # portalSkinRules
|post # post
|reloadUrls # reloadUrls
|remoteGlobalStorageOptions # remoteGlobalStorageOptions
|samlIDPMetaDataExportedAttributes # samlIDPMetaDataExportedAttributes
|samlIDPMetaDataOptions # samlIDPMetaDataOptions
|samlIDPMetaDataXML # samlIDPMetaDataXML
|samlSPMetaDataExportedAttributes # samlSPMetaDataExportedAttributes
|samlSPMetaDataOptions # samlSPMetaDataOptions
|samlSPMetaDataXML # samlSPMetaDataXML
|samlStorageOptions # samlStorageOptions
|sessionDataToRemember # sessionDataToRemember
|slaveExportedVars # slaveExportedVars
|vhostOptions # vhostOptions
|webIDExportedVars # webIDExportedVars
)$/ if ( $k =~
and $v ||= {} and not ref($v) /^(?:(?:l(?:o(?:ca(?:lSessionStorageOption|tionRule)|goutService)|dapExportedVar)|(?:(?:d(?:emo|bi)|facebook|webID)ExportedVa|exported(?:Heade|Va))r|g(?:r(?:antSessionRule|oup)|lobalStorageOption|oogleExportedVar)|ca(?:s(?:StorageOption|Attribute)|ptchaStorageOption)|re(?:moteGlobalStorageOption|loadUrl)|(?:notificationStorage|vhost)Option|CAS_proxiedService|macro)s|s(?:aml(?:S(?:PMetaData(?:(?:ExportedAttribute|Option)s|XML)|torageOptions)|IDPMetaData(?:(?:ExportedAttribute|Option)s|XML))|essionDataToRemember|laveExportedVars)|o(?:idc(?:OPMetaData(?:(?:ExportedVar|Option)s|J(?:SON|WKS))|RPMetaData(?:ExportedVar|Option)s|ServiceMetaDataAuthnContext)|penIdExportedVars)|p(?:ersistentStorageOptions|o(?:rtalSkinRules|st))|a(?:uthChoiceModules|pplicationList))$/
) and $v ||= {}
and not ref($v) )
{ {
$conf->{$k} = {}; $conf->{$k} = {};