Ignore:
Timestamp:
Sep 4, 2018, 2:33:52 PM (6 years ago)
Author:
alloc
Message:

More cleanup, allocation improvements

Location:
binary-improvements/MapRendering/Web/Handlers
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements/MapRendering/Web/Handlers/ApiHandler.cs

    r325 r326  
    77namespace AllocsFixes.NetConnections.Servers.Web.Handlers {
    88        public class ApiHandler : PathHandler {
    9                 private readonly Dictionary<string, WebAPI> apis = new Dictionary<string, WebAPI> ();
     9                private readonly Dictionary<string, WebAPI> apis = new CaseInsensitiveStringDictionary<WebAPI> ();
    1010                private readonly string staticPart;
    1111
     
    1818                                        if (ctor != null) {
    1919                                                WebAPI apiInstance = (WebAPI) ctor.Invoke (new object [0]);
    20                                                 addApi (t.Name.ToLower (), apiInstance);
     20                                                addApi (apiInstance.Name, apiInstance);
    2121                                        }
    2222                                }
     
    5252                        }
    5353
    54                         foreach (KeyValuePair<string, WebAPI> kvp in apis) {
    55                                 if (apiName.StartsWith (kvp.Key)) {
    56                                         try {
    57                                                 kvp.Value.HandleRequest (req, resp, user, permissionLevel);
    58                                                 return;
    59                                         } catch (Exception e) {
    60                                                 Log.Error ("Error in ApiHandler.HandleRequest(): Handler {0} threw an exception:", kvp.Key);
    61                                                 Log.Exception (e);
    62                                                 resp.StatusCode = (int) HttpStatusCode.InternalServerError;
    63                                                 return;
    64                                         }
     54                        WebAPI api;
     55                        if (apis.TryGetValue (apiName, out api)) {
     56                                try {
     57                                        api.HandleRequest (req, resp, user, permissionLevel);
     58                                        return;
     59                                } catch (Exception e) {
     60                                        Log.Error ("Error in ApiHandler.HandleRequest(): Handler {0} threw an exception:", api.Name);
     61                                        Log.Exception (e);
     62                                        resp.StatusCode = (int) HttpStatusCode.InternalServerError;
     63                                        return;
    6564                                }
    6665                        }
    67 
     66                       
    6867                        Log.Out ("Error in ApiHandler.HandleRequest(): No handler found for API \"" + apiName + "\"");
    6968                        resp.StatusCode = (int) HttpStatusCode.NotFound;
  • binary-improvements/MapRendering/Web/Handlers/ItemIconHandler.cs

    r325 r326  
    3737                        requestFileName = requestFileName.Remove (requestFileName.LastIndexOf ('.'));
    3838
    39                         if (icons.ContainsKey (requestFileName) && req.Url.AbsolutePath.ToLower ().EndsWith (".png")) {
     39                        if (icons.ContainsKey (requestFileName) && req.Url.AbsolutePath.EndsWith (".png", StringComparison.OrdinalIgnoreCase)) {
    4040                                resp.ContentType = MimeType.GetMimeType (".png");
    4141
     
    128128                                                        foreach (string file in Directory.GetFiles (modIconsPath)) {
    129129                                                                try {
    130                                                                         if (file.ToLower ().EndsWith (".png")) {
     130                                                                        if (file.EndsWith (".png", StringComparison.OrdinalIgnoreCase)) {
    131131                                                                                string name = Path.GetFileNameWithoutExtension (file);
    132132                                                                                Texture2D tex = new Texture2D (1, 1, TextureFormat.ARGB32, false);
Note: See TracChangeset for help on using the changeset viewer.