diff options
Diffstat (limited to 'android/avd/info.c')
-rw-r--r-- | android/avd/info.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/android/avd/info.c b/android/avd/info.c index f850f5b..3463f6a 100644 --- a/android/avd/info.c +++ b/android/avd/info.c @@ -780,12 +780,23 @@ _avdInfo_getBuildSkinHardwareIni( AvdInfo* i ) { char* skinName; char* skinDirPath; - char temp[PATH_MAX], *p=temp, *end=p+sizeof(temp); avdInfo_getSkinInfo(i, &skinName, &skinDirPath); if (skinDirPath == NULL) return 0; + int result = avdInfo_getSkinHardwareIni(i, skinName, skinDirPath); + + AFREE(skinName); + AFREE(skinDirPath); + + return result; +} + +int avdInfo_getSkinHardwareIni( AvdInfo* i, char* skinName, char* skinDirPath) +{ + char temp[PATH_MAX], *p=temp, *end=p+sizeof(temp); + p = bufprint(temp, end, "%s/%s/hardware.ini", skinDirPath, skinName); if (p >= end || !path_exists(temp)) { DD("no skin-specific hardware.ini in %s", skinDirPath); @@ -793,6 +804,8 @@ _avdInfo_getBuildSkinHardwareIni( AvdInfo* i ) } D("found skin-specific hardware.ini: %s", temp); + if (i->skinHardwareIni != NULL) + iniFile_free(i->skinHardwareIni); i->skinHardwareIni = iniFile_newFromFile(temp); if (i->skinHardwareIni == NULL) return -1; @@ -1082,7 +1095,7 @@ avdInfo_getSkinInfo( AvdInfo* i, char** pSkinName, char** pSkinDir ) /* First, see if the config.ini contains a SKIN_PATH entry that * names the full directory path for the skin. */ - if ( i->configIni != NULL ) { + if (i->configIni != NULL ) { skinPath = iniFile_getString( i->configIni, SKIN_PATH, NULL ); if (skinPath != NULL) { /* If this skin name is magic or a direct directory path |