GH-1993 swap min/max memory settings when they are the wrong way around

This commit is contained in:
Petr Mrázek 2017-09-27 12:45:07 +02:00
parent 79d208795c
commit 9a2d203c0d
4 changed files with 73 additions and 12 deletions

View File

@ -305,8 +305,18 @@ QStringList MinecraftInstance::javaArguments() const
"minecraft.exe.heapdump"); "minecraft.exe.heapdump");
#endif #endif
args << QString("-Xms%1m").arg(settings()->get("MinMemAlloc").toInt()); int min = settings()->get("MinMemAlloc").toInt();
args << QString("-Xmx%1m").arg(settings()->get("MaxMemAlloc").toInt()); int max = settings()->get("MaxMemAlloc").toInt();
if(min < max)
{
args << QString("-Xms%1m").arg(min);
args << QString("-Xmx%1m").arg(max);
}
else
{
args << QString("-Xms%1m").arg(max);
args << QString("-Xmx%1m").arg(min);
}
// No PermGen in newer java. // No PermGen in newer java.
JavaVersion javaVersion = getJavaVersion(); JavaVersion javaVersion = getJavaVersion();

View File

@ -1125,8 +1125,19 @@ MainWindow* MultiMC::showMainWindow(bool minimized)
* cd4 = CPU architecture * cd4 = CPU architecture
*/ */
QVariantMap customValues; QVariantMap customValues;
customValues["cm1"] = m_settings->get("MinMemAlloc"); int min = m_settings->get("MinMemAlloc").toInt();
customValues["cm2"] = m_settings->get("MaxMemAlloc"); int max = m_settings->get("MaxMemAlloc").toInt();
if(min < max)
{
customValues["cm1"] = min;
customValues["cm2"] = max;
}
else
{
customValues["cm1"] = max;
customValues["cm2"] = min;
}
constexpr uint64_t Mega = 1024ull * 1024ull; constexpr uint64_t Mega = 1024ull * 1024ull;
int ramSize = int(Sys::getSystemRam() / Mega); int ramSize = int(Sys::getSystemRam() / Mega);
qDebug() << "RAM size is" << ramSize << "MB"; qDebug() << "RAM size is" << ramSize << "MB";

View File

@ -80,8 +80,18 @@ void InstanceSettingsPage::applySettings()
m_settings->set("OverrideMemory", memory); m_settings->set("OverrideMemory", memory);
if (memory) if (memory)
{ {
m_settings->set("MinMemAlloc", ui->minMemSpinBox->value()); int min = ui->minMemSpinBox->value();
m_settings->set("MaxMemAlloc", ui->maxMemSpinBox->value()); int max = ui->maxMemSpinBox->value();
if(min < max)
{
m_settings->set("MinMemAlloc", min);
m_settings->set("MaxMemAlloc", max);
}
else
{
m_settings->set("MinMemAlloc", max);
m_settings->set("MaxMemAlloc", min);
}
m_settings->set("PermGen", ui->permGenSpinBox->value()); m_settings->set("PermGen", ui->permGenSpinBox->value());
} }
else else
@ -152,8 +162,18 @@ void InstanceSettingsPage::loadSettings()
// Memory // Memory
ui->memoryGroupBox->setChecked(m_settings->get("OverrideMemory").toBool()); ui->memoryGroupBox->setChecked(m_settings->get("OverrideMemory").toBool());
ui->minMemSpinBox->setValue(m_settings->get("MinMemAlloc").toInt()); int min = m_settings->get("MinMemAlloc").toInt();
ui->maxMemSpinBox->setValue(m_settings->get("MaxMemAlloc").toInt()); int max = m_settings->get("MaxMemAlloc").toInt();
if(min < max)
{
ui->minMemSpinBox->setValue(min);
ui->maxMemSpinBox->setValue(max);
}
else
{
ui->minMemSpinBox->setValue(max);
ui->maxMemSpinBox->setValue(min);
}
ui->permGenSpinBox->setValue(m_settings->get("PermGen").toInt()); ui->permGenSpinBox->setValue(m_settings->get("PermGen").toInt());
// Java Settings // Java Settings

View File

@ -62,8 +62,18 @@ void JavaPage::applySettings()
auto s = MMC->settings(); auto s = MMC->settings();
// Memory // Memory
s->set("MinMemAlloc", ui->minMemSpinBox->value()); int min = ui->minMemSpinBox->value();
s->set("MaxMemAlloc", ui->maxMemSpinBox->value()); int max = ui->maxMemSpinBox->value();
if(min < max)
{
s->set("MinMemAlloc", min);
s->set("MaxMemAlloc", max);
}
else
{
s->set("MinMemAlloc", max);
s->set("MaxMemAlloc", min);
}
s->set("PermGen", ui->permGenSpinBox->value()); s->set("PermGen", ui->permGenSpinBox->value());
// Java Settings // Java Settings
@ -80,8 +90,18 @@ void JavaPage::loadSettings()
{ {
auto s = MMC->settings(); auto s = MMC->settings();
// Memory // Memory
ui->minMemSpinBox->setValue(s->get("MinMemAlloc").toInt()); int min = s->get("MinMemAlloc").toInt();
ui->maxMemSpinBox->setValue(s->get("MaxMemAlloc").toInt()); int max = s->get("MaxMemAlloc").toInt();
if(min < max)
{
ui->minMemSpinBox->setValue(min);
ui->maxMemSpinBox->setValue(max);
}
else
{
ui->minMemSpinBox->setValue(max);
ui->maxMemSpinBox->setValue(min);
}
ui->permGenSpinBox->setValue(s->get("PermGen").toInt()); ui->permGenSpinBox->setValue(s->get("PermGen").toInt());
// Java Settings // Java Settings