Skip to content

Commit 6092214

Browse files
committed
Inline MD5 instead of using a SemanticdbMd5 helper
MessageDigest is stdlib, and each plugin can express its own hex conversion idiomatically (Kotlin one-liner via joinToString, small Java loop). The helper added no real value beyond hiding 3 lines.
1 parent b029082 commit 6092214

3 files changed

Lines changed: 18 additions & 51 deletions

File tree

semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbVisitor.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import com.sourcegraph.semanticdb.Semanticdb;
44

5-
import com.sourcegraph.semanticdb.SemanticdbMd5;
65
import com.sourcegraph.semanticdb.SemanticdbPaths;
76
import com.sourcegraph.semanticdb.SemanticdbSymbols;
87

@@ -44,7 +43,10 @@
4443
import com.sourcegraph.semanticdb.Semanticdb.SymbolOccurrence.Role;
4544

4645
import java.io.IOException;
46+
import java.nio.charset.StandardCharsets;
4747
import java.nio.file.Path;
48+
import java.security.MessageDigest;
49+
import java.security.NoSuchAlgorithmException;
4850
import java.util.List;
4951
import java.util.ArrayList;
5052
import java.util.LinkedHashMap;
@@ -560,8 +562,17 @@ private String semanticdbText() {
560562

561563
private String semanticdbMd5() {
562564
try {
563-
return SemanticdbMd5.digest(compUnitTree.getSourceFile().getCharContent(true).toString());
564-
} catch (IOException e) {
565+
byte[] bytes =
566+
compUnitTree
567+
.getSourceFile()
568+
.getCharContent(true)
569+
.toString()
570+
.getBytes(StandardCharsets.UTF_8);
571+
byte[] digest = MessageDigest.getInstance("MD5").digest(bytes);
572+
StringBuilder sb = new StringBuilder(digest.length * 2);
573+
for (byte b : digest) sb.append(String.format("%02X", b));
574+
return sb.toString();
575+
} catch (IOException | NoSuchAlgorithmException e) {
565576
return "";
566577
}
567578
}

semanticdb-kotlinc/src/main/kotlin/com/sourcegraph/semanticdb_kotlinc/SemanticdbTextDocumentBuilder.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ package com.sourcegraph.semanticdb_kotlinc
33
import com.sourcegraph.semanticdb.Semanticdb
44

55
import com.sourcegraph.semanticdb.Semanticdb.SymbolOccurrence.Role
6-
import com.sourcegraph.semanticdb.SemanticdbMd5
76
import com.sourcegraph.semanticdb.SemanticdbPaths
87
import java.nio.file.Path
98
import java.nio.file.Paths
9+
import java.security.MessageDigest
1010
import kotlin.contracts.ExperimentalContracts
1111
import org.jetbrains.kotlin.KtSourceElement
1212
import org.jetbrains.kotlin.KtSourceFile
@@ -152,7 +152,9 @@ class SemanticdbTextDocumentBuilder(
152152
SemanticdbPaths.semanticdbUri(sourceroot, Paths.get(file.path))
153153

154154
private fun semanticdbMD5(): String =
155-
SemanticdbMd5.digest(file.getContentsAsStream().readBytes())
155+
MessageDigest.getInstance("MD5")
156+
.digest(file.getContentsAsStream().readBytes())
157+
.joinToString("") { "%02X".format(it) }
156158

157159
private fun semanticdbDocumentation(element: FirElement): Semanticdb.Documentation = Documentation {
158160
format = Semanticdb.Documentation.Format.MARKDOWN

semanticdb-shared/src/main/java/com/sourcegraph/semanticdb/SemanticdbMd5.java

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

0 commit comments

Comments
 (0)