summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2017-09-27 12:45:07 +0200
committerPetr Mrázek <peterix@gmail.com>2017-09-27 12:45:07 +0200
commit9a2d203c0d95e51ea02e3e62fef6289973777e84 (patch)
tree739ef893f0b803ca29652ba1afe3b2a7132e6497
parent79d208795c4f1fab88caa7e1684cfbb3c37fc185 (diff)
downloadMultiMC-9a2d203c0d95e51ea02e3e62fef6289973777e84.tar
MultiMC-9a2d203c0d95e51ea02e3e62fef6289973777e84.tar.gz
MultiMC-9a2d203c0d95e51ea02e3e62fef6289973777e84.tar.lz
MultiMC-9a2d203c0d95e51ea02e3e62fef6289973777e84.tar.xz
MultiMC-9a2d203c0d95e51ea02e3e62fef6289973777e84.zip
GH-1993 swap min/max memory settings when they are the wrong way around
-rw-r--r--api/logic/minecraft/MinecraftInstance.cpp14
-rw-r--r--application/MultiMC.cpp15
-rw-r--r--application/pages/InstanceSettingsPage.cpp28
-rw-r--r--application/pages/global/JavaPage.cpp28
4 files changed, 73 insertions, 12 deletions
diff --git a/api/logic/minecraft/MinecraftInstance.cpp b/api/logic/minecraft/MinecraftInstance.cpp
index 4ff85c27..14de2f5f 100644
--- a/api/logic/minecraft/MinecraftInstance.cpp
+++ b/api/logic/minecraft/MinecraftInstance.cpp
@@ -305,8 +305,18 @@ QStringList MinecraftInstance::javaArguments() const
"minecraft.exe.heapdump");
#endif
- args << QString("-Xms%1m").arg(settings()->get("MinMemAlloc").toInt());
- args << QString("-Xmx%1m").arg(settings()->get("MaxMemAlloc").toInt());
+ int min = settings()->get("MinMemAlloc").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.
JavaVersion javaVersion = getJavaVersion();
diff --git a/application/MultiMC.cpp b/application/MultiMC.cpp
index fd004b05..feaf88a7 100644
--- a/application/MultiMC.cpp
+++ b/application/MultiMC.cpp
@@ -1125,8 +1125,19 @@ MainWindow* MultiMC::showMainWindow(bool minimized)
* cd4 = CPU architecture
*/
QVariantMap customValues;
- customValues["cm1"] = m_settings->get("MinMemAlloc");
- customValues["cm2"] = m_settings->get("MaxMemAlloc");
+ int min = m_settings->get("MinMemAlloc").toInt();
+ 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;
int ramSize = int(Sys::getSystemRam() / Mega);
qDebug() << "RAM size is" << ramSize << "MB";
diff --git a/application/pages/InstanceSettingsPage.cpp b/application/pages/InstanceSettingsPage.cpp
index 22dbd81f..90c2e92e 100644
--- a/application/pages/InstanceSettingsPage.cpp
+++ b/application/pages/InstanceSettingsPage.cpp
@@ -80,8 +80,18 @@ void InstanceSettingsPage::applySettings()
m_settings->set("OverrideMemory", memory);
if (memory)
{
- m_settings->set("MinMemAlloc", ui->minMemSpinBox->value());
- m_settings->set("MaxMemAlloc", ui->maxMemSpinBox->value());
+ int min = ui->minMemSpinBox->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());
}
else
@@ -152,8 +162,18 @@ void InstanceSettingsPage::loadSettings()
// Memory
ui->memoryGroupBox->setChecked(m_settings->get("OverrideMemory").toBool());
- ui->minMemSpinBox->setValue(m_settings->get("MinMemAlloc").toInt());
- ui->maxMemSpinBox->setValue(m_settings->get("MaxMemAlloc").toInt());
+ int min = m_settings->get("MinMemAlloc").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());
// Java Settings
diff --git a/application/pages/global/JavaPage.cpp b/application/pages/global/JavaPage.cpp
index f43fd641..81c6f7a7 100644
--- a/application/pages/global/JavaPage.cpp
+++ b/application/pages/global/JavaPage.cpp
@@ -62,8 +62,18 @@ void JavaPage::applySettings()
auto s = MMC->settings();
// Memory
- s->set("MinMemAlloc", ui->minMemSpinBox->value());
- s->set("MaxMemAlloc", ui->maxMemSpinBox->value());
+ int min = ui->minMemSpinBox->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());
// Java Settings
@@ -80,8 +90,18 @@ void JavaPage::loadSettings()
{
auto s = MMC->settings();
// Memory
- ui->minMemSpinBox->setValue(s->get("MinMemAlloc").toInt());
- ui->maxMemSpinBox->setValue(s->get("MaxMemAlloc").toInt());
+ int min = s->get("MinMemAlloc").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());
// Java Settings