Skip to content

Commit 3530e04

Browse files
committed
Fix #391: remove complex stringbuilder caching
-also try to optimize a few spots where strings were rebuilt
1 parent 655deb0 commit 3530e04

File tree

5 files changed

+16
-82
lines changed

5 files changed

+16
-82
lines changed

SCANsat/SCAN_UI/UI_Framework/SCANStringBuilderCache.cs

Lines changed: 0 additions & 43 deletions
This file was deleted.

SCANsat/SCAN_UI/UI_Framework/SCANuiUtil.cs

Lines changed: 2 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -415,34 +415,8 @@ internal static void getMouseOverElevation(StringBuilder sb, double Lon, double
415415

416416
/* UI: conversions to and from DMS */
417417
/* FIXME: These do not belong here. And they are only used once! */
418-
private static string toDMS(double thing, char neg, char pos, int prec)
419-
{
420-
StringBuilder sb = SCANStringBuilderCache.Acquire();
421418

422-
if (thing >= 0)
423-
{
424-
neg = pos;
425-
}
426-
427-
thing = Math.Abs(thing);
428-
429-
sb.Append(Math.Floor(thing).ToString());
430-
sb.Append(HOURS);
431-
thing = (thing - Math.Floor(thing)) * 60;
432-
433-
sb.Append(Math.Floor(thing).ToString());
434-
sb.Append(MINUTES);
435-
thing = (thing - Math.Floor(thing)) * 60;
436-
437-
sb.Append(thing.ToString(string.Format("F{0}", prec.ToString())));
438-
sb.Append(SECONDS);
439-
440-
sb.Append(neg);
441-
442-
return sb.SCANToStringAndRelease();
443-
}
444-
445-
private static void toDMS(StringBuilder sb, double thing, char neg, char pos)
419+
private static void toDMS(StringBuilder sb, double thing, char neg, char pos, string precFormat = "F2")
446420
{
447421
if (thing >= 0)
448422
{
@@ -459,17 +433,12 @@ private static void toDMS(StringBuilder sb, double thing, char neg, char pos)
459433
sb.Append(MINUTES);
460434
thing = (thing - Math.Floor(thing)) * 60;
461435

462-
sb.Append(thing.ToString("F2"));
436+
sb.Append(thing.ToString(precFormat));
463437
sb.Append(SECONDS);
464438

465439
sb.Append(neg);
466440
}
467441

468-
internal static string toDMS(double lat, double lon, int precision = 2)
469-
{
470-
return string.Format("{0} {1}", toDMS(lat, SOUTH, NORTH, precision), toDMS(lon, WEST, EAST, precision));
471-
}
472-
473442
internal static void toDMS(StringBuilder sb, double lat, double lon)
474443
{
475444
toDMS(sb, lat, SOUTH, NORTH);

SCANsat/SCAN_Unity/SCAN_UI_Overlay.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ public class SCAN_UI_Overlay : ISCAN_Overlay
5050
private volatile bool terrainGenerated;
5151

5252
private StringBuilder tooltipText = new StringBuilder();
53+
private string tooltipString = string.Empty;
5354
private bool tooltipActive;
5455

5556
private Texture2D mapOverlay;
@@ -193,7 +194,7 @@ private void MouseOverTooltip(SCANUtil.SCANCoordinates coords)
193194

194195
tooltipText.Length = 0;
195196

196-
tooltipText.Append(coords.ToDMS());
197+
coords.ToDMS(tooltipText);
197198

198199
if (body.pqsController != null)
199200
{
@@ -239,6 +240,8 @@ private void MouseOverTooltip(SCANUtil.SCANCoordinates coords)
239240
tooltipText.AppendLine();
240241
tooltipText.Append(SCANuiUtil.getResourceAbundance(body, coords.latitude, coords.longitude, fuzzy, currentResource));
241242
}
243+
244+
tooltipString = tooltipText.ToString();
242245
}
243246

244247
public void Open()
@@ -260,7 +263,7 @@ public void Open()
260263

261264
uiElement.SetOverlay(this);
262265

263-
tooltipText = SCANStringBuilderCache.Acquire();
266+
tooltipString = string.Empty;
264267

265268
_isVisible = true;
266269

@@ -307,7 +310,7 @@ public string CurrentResource
307310

308311
public string TooltipText
309312
{
310-
get { return tooltipText.SCANToStringAndRelease(); }
313+
get { return tooltipString; }
311314
}
312315

313316
public bool IsVisible

SCANsat/SCAN_Unity/SCAN_UI_ZoomMap.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1269,7 +1269,12 @@ public string ZoomLevelText
12691269

12701270
public string MapCenterText
12711271
{
1272-
get { return SCANuiUtil.toDMS(spotmap.CenteredLat, spotmap.CenteredLong); }
1272+
get
1273+
{
1274+
infoString.Clear();
1275+
SCANuiUtil.toDMS(infoString, spotmap.CenteredLat, spotmap.CenteredLong);
1276+
return infoString.ToString();
1277+
}
12731278
}
12741279

12751280
public string RandomWaypoint

SCANsat/SCANutil.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1334,9 +1334,9 @@ public string ToDegString()
13341334
return latitude.ToString("F1") + "°, " + longitude.ToString("F1") + "°";
13351335
}
13361336

1337-
public string ToDMS()
1337+
public void ToDMS(StringBuilder sb)
13381338
{
1339-
return SCANuiUtil.toDMS(latitude, longitude, 0);
1339+
SCANuiUtil.toDMS(sb, latitude, longitude);
13401340
}
13411341
}
13421342

0 commit comments

Comments
 (0)