71 lines
3.5 KiB
Diff
71 lines
3.5 KiB
Diff
From bb2e9a0394a48f4ef3576e8d91607e8129b2b716 Mon Sep 17 00:00:00 2001
|
|
From: Nick Desaulniers <ndesaulniers@google.com>
|
|
Date: Fri, 8 Jul 2022 14:55:46 -0700
|
|
Subject: [PATCH] Fix PHP 8.1 incompatibility with `arc patch D<12345>`
|
|
|
|
Fixes the following observed error with PHP 8.1:
|
|
|
|
EXCEPTION: (RuntimeException) preg_match(): Passing null to parameter phacility#2 ($subject) of type string is deprecated at [<arcanist>/src/error/PhutilErrorHandler.php:261]
|
|
arcanist(head=master, ref.master=acec17af414f)
|
|
#0 PhutilErrorHandler::handleError(integer, string, string, integer)
|
|
phacility#1 preg_match(string, NULL, NULL) called at [<arcanist>/src/repository/api/ArcanistGitAPI.php:603]
|
|
phacility#2 ArcanistGitAPI::getCanonicalRevisionName(NULL) called at [<arcanist>/src/repository/api/ArcanistGitAPI.php:1146]
|
|
phacility#3 ArcanistGitAPI::hasLocalCommit(NULL) called at [<arcanist>/src/workflow/ArcanistPatchWorkflow.php:433]
|
|
phacility#4 ArcanistPatchWorkflow::run() called at [<arcanist>/src/workflow/ArcanistPatchWorkflow.php:398]
|
|
phacility#5 ArcanistPatchWorkflow::run() called at [<arcanist>/scripts/arcanist.php:427]
|
|
|
|
Link: https://secure.phabricator.com/book/phabcontrib/article/contributing_code/
|
|
Link: https://reviews.llvm.org/D129232#3634072
|
|
Suggested-by: Yuanfang Chen <yuanfang.chen@sony.com>
|
|
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
|
|
---
|
|
src/differential/ArcanistDifferentialDependencyGraph.php | 3 ++-
|
|
src/lint/linter/ArcanistScriptAndRegexLinter.php | 2 +-
|
|
src/repository/api/ArcanistGitAPI.php | 3 ++-
|
|
3 files changed, 5 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/src/differential/ArcanistDifferentialDependencyGraph.php b/src/differential/ArcanistDifferentialDependencyGraph.php
|
|
index 64e2f9c71c20..fbc4e6594f0e 100644
|
|
--- a/src/differential/ArcanistDifferentialDependencyGraph.php
|
|
+++ b/src/differential/ArcanistDifferentialDependencyGraph.php
|
|
@@ -42,7 +42,8 @@ final class ArcanistDifferentialDependencyGraph extends AbstractDirectedGraph {
|
|
$edges = array();
|
|
foreach ($dependencies as $dependency) {
|
|
$dependency_revision = $this->getCommitHashFromDict($dependency);
|
|
- if ($repository_api->hasLocalCommit($dependency_revision)) {
|
|
+ if (phutil_nonempty_string($dependency_revision) &&
|
|
+ $repository_api->hasLocalCommit($dependency_revision)) {
|
|
$edges[$dependency['phid']] = array();
|
|
continue;
|
|
}
|
|
diff --git a/src/lint/linter/ArcanistScriptAndRegexLinter.php b/src/lint/linter/ArcanistScriptAndRegexLinter.php
|
|
index 0c3d9d9a11ca..b9f6924ec997 100644
|
|
--- a/src/lint/linter/ArcanistScriptAndRegexLinter.php
|
|
+++ b/src/lint/linter/ArcanistScriptAndRegexLinter.php
|
|
@@ -338,7 +338,7 @@ final class ArcanistScriptAndRegexLinter extends ArcanistLinter {
|
|
}
|
|
|
|
$line = idx($match, 'line');
|
|
- if (strlen($line)) {
|
|
+ if (phutil_nonempty_string($line) && strlen($line)) {
|
|
$line = (int)$line;
|
|
if (!$line) {
|
|
$line = 1;
|
|
diff --git a/src/repository/api/ArcanistGitAPI.php b/src/repository/api/ArcanistGitAPI.php
|
|
index 6c6d2ac42a19..13907d5634be 100644
|
|
--- a/src/repository/api/ArcanistGitAPI.php
|
|
+++ b/src/repository/api/ArcanistGitAPI.php
|
|
@@ -1143,7 +1143,8 @@ final class ArcanistGitAPI extends ArcanistRepositoryAPI {
|
|
|
|
public function hasLocalCommit($commit) {
|
|
try {
|
|
- if (!$this->getCanonicalRevisionName($commit)) {
|
|
+ if (!phutil_nonempty_string($commit) ||
|
|
+ !$this->getCanonicalRevisionName($commit)) {
|
|
return false;
|
|
}
|
|
} catch (CommandException $exception) {
|
|
--
|
|
2.37.0.rc0.161.g10f37bed90-goog
|
|
|