From: huiyueun <35286162+huiyueun@users.noreply.github.com> Date: Mon, 28 Jan 2019 04:28:41 +0000 (+0900) Subject: [NUI] Fix svace issue (#686) X-Git-Tag: submit/tizen_5.0/20190129.000255~1^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8976c9efca7a84f1ded8ea66761f43db0aba62c5;p=platform%2Fcore%2Fcsapi%2Ftizenfx.git [NUI] Fix svace issue (#686) Add null check Signed-off-by: huiyu.eun --- diff --git a/src/Tizen.NUI/src/internal/Xaml/CreateValuesVisitor.cs b/src/Tizen.NUI/src/internal/Xaml/CreateValuesVisitor.cs index 1d5ce18a4..ce953613a 100755 --- a/src/Tizen.NUI/src/internal/Xaml/CreateValuesVisitor.cs +++ b/src/Tizen.NUI/src/internal/Xaml/CreateValuesVisitor.cs @@ -197,7 +197,15 @@ namespace Tizen.NUI.Xaml ci.GetParameters().Length != 0 && ci.IsPublic && ci.GetParameters().All(pi => pi.CustomAttributes.Any(attr => attr.AttributeType == typeof (ParameterAttribute)))); object[] arguments = CreateArgumentsArray(node, ctorInfo); - return ctorInfo?.Invoke(arguments); + if (arguments != null) + { + return ctorInfo?.Invoke(arguments); + } + else + { + return null; + } + } public object CreateFromFactory(Type nodeType, IElementNode node) @@ -277,39 +285,43 @@ namespace Tizen.NUI.Xaml public object[] CreateArgumentsArray(IElementNode enode, ConstructorInfo ctorInfo) { - var n = ctorInfo.GetParameters().Length; - var array = new object[n]; - for (var i = 0; i < n; i++) + if(ctorInfo != null) { - var parameter = ctorInfo.GetParameters()[i]; - var propname = - parameter?.CustomAttributes?.First(attr => attr.AttributeType == typeof (ParameterAttribute))? - .ConstructorArguments.First() - .Value as string; - var name = new XmlName("", propname); - INode node; - if (!enode.Properties.TryGetValue(name, out node)) + var n = ctorInfo.GetParameters().Length; + var array = new object[n]; + for (var i = 0; i < n; i++) { - String msg = ""; - if (propname != null) + var parameter = ctorInfo.GetParameters()[i]; + var propname = + parameter?.CustomAttributes?.First(attr => attr.AttributeType == typeof (ParameterAttribute))? + .ConstructorArguments.First() + .Value as string; + var name = new XmlName("", propname); + INode node; + if (!enode.Properties.TryGetValue(name, out node)) { - msg = String.Format("The Property {0} is required to create a {1} object.", propname, ctorInfo.DeclaringType.FullName); - } - else - { - msg = "propname is null."; + String msg = ""; + if (propname != null) + { + msg = String.Format("The Property {0} is required to create a {1} object.", propname, ctorInfo.DeclaringType.FullName); + } + else + { + msg = "propname is null."; + } + throw new XamlParseException(msg, enode as IXmlLineInfo); } - throw new XamlParseException(msg, enode as IXmlLineInfo); + if (!enode.SkipProperties.Contains(name)) + enode.SkipProperties.Add(name); + var value = Context.Values[node]; + var serviceProvider = new XamlServiceProvider(enode, Context); + var convertedValue = value.ConvertTo(parameter.ParameterType, () => parameter, serviceProvider); + array[i] = convertedValue; } - if (!enode.SkipProperties.Contains(name)) - enode.SkipProperties.Add(name); - var value = Context.Values[node]; - var serviceProvider = new XamlServiceProvider(enode, Context); - var convertedValue = value.ConvertTo(parameter.ParameterType, () => parameter, serviceProvider); - array[i] = convertedValue; + + return array; } - - return array; + return null; } static bool IsXaml2009LanguagePrimitive(IElementNode node)