+ CApp = CApp + ' __FLEXIBLE_SIZE(Size, %s, %s, %d); // From %s Line %d Value %s\n' % (Pcd.DatumType, FieldName.strip("."), ArrayIndex + 1, FieldList[FieldName_ori][1], FieldList[FieldName_ori][2], FieldList[FieldName_ori][0])\r
+ for skuname in self.SkuIdMgr.GetSkuChain(SkuName):\r
+ inherit_OverrideValues = Pcd.SkuOverrideValues[skuname]\r
+ for FieldList in [inherit_OverrideValues.get(DefaultStoreName)]:\r
+ if not FieldList:\r
+ continue\r
+ for FieldName in FieldList:\r
+ FieldName = "." + FieldName\r
+ IsArray = self.IsFieldValueAnArray(FieldList[FieldName.strip(".")][0])\r
+ if IsArray:\r
+ Value, ValueSize = ParseFieldValue (FieldList[FieldName.strip(".")][0])\r
+ CApp = CApp + ' __FLEXIBLE_SIZE(Size, %s, %s, %d / __ARRAY_ELEMENT_SIZE(%s, %s) + ((%d %% __ARRAY_ELEMENT_SIZE(%s, %s)) ? 1 : 0)); // From %s Line %d Value %s\n' % (Pcd.DatumType, FieldName.strip("."), ValueSize, Pcd.DatumType, FieldName.strip("."), ValueSize, Pcd.DatumType, FieldName.strip("."), FieldList[FieldName.strip(".")][1], FieldList[FieldName.strip(".")][2], FieldList[FieldName.strip(".")][0]);\r
+ else:\r
+ NewFieldName = ''\r
+ FieldName_ori = FieldName.strip('.')\r
+ while '[' in FieldName:\r
+ NewFieldName = NewFieldName + FieldName.split('[', 1)[0] + '[0]'\r
+ ArrayIndex = int(FieldName.split('[', 1)[1].split(']', 1)[0])\r
+ FieldName = FieldName.split(']', 1)[1]\r
+ FieldName = NewFieldName + FieldName\r
+ while '[' in FieldName:\r
+ FieldName = FieldName.rsplit('[', 1)[0]\r
+ CApp = CApp + ' __FLEXIBLE_SIZE(Size, %s, %s, %d); // From %s Line %d Value %s \n' % (Pcd.DatumType, FieldName.strip("."), ArrayIndex + 1, FieldList[FieldName_ori][1], FieldList[FieldName_ori][2], FieldList[FieldName_ori][0])\r
+ if skuname == SkuName:\r
+ break\r