diff --git a/services/core/java/com/android/server/pm/DynamicCodeLoggingService.java b/services/core/java/com/android/server/pm/DynamicCodeLoggingService.java index da65fe2bc0abe..c65c2b1127069 100644 --- a/services/core/java/com/android/server/pm/DynamicCodeLoggingService.java +++ b/services/core/java/com/android/server/pm/DynamicCodeLoggingService.java @@ -234,7 +234,7 @@ public class DynamicCodeLoggingService extends JobService { List events = new ArrayList<>(); EventLog.readEvents(tags, events); - + Matcher matcher = EXECUTE_NATIVE_AUDIT_PATTERN.matcher(""); for (int i = 0; i < events.size(); ++i) { if (mAuditWatchingStopRequested) { Log.w(TAG, "Stopping AuditWatchingJob run at scheduler request"); @@ -259,7 +259,9 @@ public class DynamicCodeLoggingService extends JobService { // And then use a regular expression to verify it's one of the messages we're // interested in and to extract the path of the file being loaded. - Matcher matcher = EXECUTE_NATIVE_AUDIT_PATTERN.matcher(message); + // Reuse the Matcher to avoid unnecessary string garbage caused by libcore's + // regex matching. + matcher.reset(message); if (!matcher.matches()) { continue; }