From fa0dddf12b17cf0c54156819e290a9a87fc94057 Mon Sep 17 00:00:00 2001 From: Jonatino Date: Tue, 19 Jul 2016 23:04:48 -0400 Subject: [PATCH] Code cleanup and updated version --- build.gradle | 2 +- src/main/java/com/beaudoin/jmm/misc/Cacheable.java | 6 ++++-- src/main/java/com/beaudoin/jmm/misc/Strings.java | 8 ++++---- .../java/com/beaudoin/jmm/process/AbstractProcess.java | 2 +- src/main/java/com/beaudoin/jmm/process/DataSource.java | 2 +- .../com/beaudoin/jmm/process/impl/win32/Win32Process.java | 3 +-- 6 files changed, 12 insertions(+), 11 deletions(-) diff --git a/build.gradle b/build.gradle index 64e8835..18b2c00 100644 --- a/build.gradle +++ b/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'java' apply plugin: 'maven' group = 'com.beaudoin.jmm' -version = '1.5' +version = '1.6' repositories { mavenCentral() diff --git a/src/main/java/com/beaudoin/jmm/misc/Cacheable.java b/src/main/java/com/beaudoin/jmm/misc/Cacheable.java index 9f26f84..862dd77 100644 --- a/src/main/java/com/beaudoin/jmm/misc/Cacheable.java +++ b/src/main/java/com/beaudoin/jmm/misc/Cacheable.java @@ -25,6 +25,7 @@ package com.beaudoin.jmm.misc; import com.sun.jna.Pointer; +import com.sun.jna.platform.win32.WinDef; import com.sun.jna.ptr.IntByReference; import java.util.HashMap; @@ -34,16 +35,17 @@ public final class Cacheable { private static final Map bufferCache = new HashMap<>(); - private static final Function butterCreate = MemoryBuffer::new; + private static final Function bufferCreate = MemoryBuffer::new; private static final Map arrayCache = new HashMap<>(); private static final Function arrayCreate = byte[]::new; private static final Pointer cachedPointer = new Pointer(0); public static final IntByReference INT_BY_REF = new IntByReference(); + public static final WinDef.DWORD DWORD_ZERO = new WinDef.DWORD(); public static MemoryBuffer buffer(int size) { - return bufferCache.computeIfAbsent(size, butterCreate); + return bufferCache.computeIfAbsent(size, bufferCreate); } public static byte[] array(int size) { diff --git a/src/main/java/com/beaudoin/jmm/misc/Strings.java b/src/main/java/com/beaudoin/jmm/misc/Strings.java index 783d4d0..ec11857 100644 --- a/src/main/java/com/beaudoin/jmm/misc/Strings.java +++ b/src/main/java/com/beaudoin/jmm/misc/Strings.java @@ -34,12 +34,12 @@ */ public final class Strings { - private static Map map = new HashMap<>(16_982); + private static Map stringCache = new HashMap<>(16_982); public static String transform(byte[] bytes) { long hash = LongHashFunction.xx_r39().hashBytes(bytes); - if (map.containsKey(hash)) { - return map.get(hash); + if (stringCache.containsKey(hash)) { + return stringCache.get(hash); } for (int i = 0; i < bytes.length; i++) { if (bytes[i] == 0) { @@ -47,7 +47,7 @@ public static String transform(byte[] bytes) { } } String string = new String(bytes).split(" ")[0].trim().intern(); - map.put(hash, string); + stringCache.put(hash, string); return string; } diff --git a/src/main/java/com/beaudoin/jmm/process/AbstractProcess.java b/src/main/java/com/beaudoin/jmm/process/AbstractProcess.java index 6788e11..d4fdb7b 100644 --- a/src/main/java/com/beaudoin/jmm/process/AbstractProcess.java +++ b/src/main/java/com/beaudoin/jmm/process/AbstractProcess.java @@ -23,7 +23,7 @@ public int id() { @Override public Module findModule(String moduleName) { - Module module = modules.get(moduleName); + Module module = modules.isEmpty() ? null : modules.get(moduleName); if (module == null) { initModules(); } diff --git a/src/main/java/com/beaudoin/jmm/process/DataSource.java b/src/main/java/com/beaudoin/jmm/process/DataSource.java index 8cadae2..05dc118 100644 --- a/src/main/java/com/beaudoin/jmm/process/DataSource.java +++ b/src/main/java/com/beaudoin/jmm/process/DataSource.java @@ -51,7 +51,7 @@ default double readDouble(long address) { } default String readString(long address, int length) { - byte[] bytes = Cacheable.array(length); + byte[] bytes = new byte[length]; read(address, bytes.length).get(bytes); return Strings.transform(bytes); } diff --git a/src/main/java/com/beaudoin/jmm/process/impl/win32/Win32Process.java b/src/main/java/com/beaudoin/jmm/process/impl/win32/Win32Process.java index a05b44d..364913f 100644 --- a/src/main/java/com/beaudoin/jmm/process/impl/win32/Win32Process.java +++ b/src/main/java/com/beaudoin/jmm/process/impl/win32/Win32Process.java @@ -45,7 +45,6 @@ public final class Win32Process extends AbstractProcess { public Win32Process(int id, Pointer handle) { super(id); this.handle = handle; - initModules(); } public Pointer pointer() { @@ -59,7 +58,7 @@ public void initModules() { try { while (Kernel32.Module32NextW(snapshot, entry)) { String name = entry.szModule(); - modules.putIfAbsent(name, new Module(this, name, entry.getPointer(), entry.modBaseSize.intValue())); + modules.putIfAbsent(name, new Module(this, name, entry.hModule.getPointer(), entry.modBaseSize.intValue())); } } finally { Kernel32.CloseHandle(snapshot);