Page MenuHomePhabricator

D18624.diff
No OneTemporary

D18624.diff

diff --git a/src/applications/differential/storage/DifferentialModernHunk.php b/src/applications/differential/storage/DifferentialModernHunk.php
--- a/src/applications/differential/storage/DifferentialModernHunk.php
+++ b/src/applications/differential/storage/DifferentialModernHunk.php
@@ -51,8 +51,11 @@
$this->dataEncoding = $this->detectEncodingForStorage($text);
$this->dataType = self::DATATYPE_TEXT;
- $this->dataFormat = self::DATAFORMAT_RAW;
- $this->data = $text;
+
+ list($format, $data) = $this->formatDataForStorage($text);
+
+ $this->dataFormat = $format;
+ $this->data = $data;
return $this;
}
@@ -68,24 +71,13 @@
return $this;
}
- public function save() {
-
- $type = $this->getDataType();
- $format = $this->getDataFormat();
-
- // Before saving the data, attempt to compress it.
- if ($type == self::DATATYPE_TEXT) {
- if ($format == self::DATAFORMAT_RAW) {
- $data = $this->getData();
- $deflated = PhabricatorCaches::maybeDeflateData($data);
- if ($deflated !== null) {
- $this->data = $deflated;
- $this->dataFormat = self::DATAFORMAT_DEFLATED;
- }
- }
+ private function formatDataForStorage($data) {
+ $deflated = PhabricatorCaches::maybeDeflateData($data);
+ if ($deflated !== null) {
+ return array(self::DATAFORMAT_DEFLATED, $deflated);
}
- return parent::save();
+ return array(self::DATAFORMAT_RAW, $data);
}
public function saveAsText() {
@@ -99,7 +91,10 @@
$raw_data = $this->getRawData();
$this->setDataType(self::DATATYPE_TEXT);
- $this->setData($raw_data);
+
+ list($format, $data) = $this->formatDataForStorage($raw_data);
+ $this->setDataFormat($format);
+ $this->setData($data);
$result = $this->save();
@@ -118,8 +113,11 @@
$raw_data = $this->getRawData();
+ list($format, $data) = $this->formatDataForStorage($raw_data);
+ $this->setDataFormat($format);
+
$file = PhabricatorFile::newFromFileData(
- $raw_data,
+ $data,
array(
'name' => 'differential-hunk',
'mime-type' => 'application/octet-stream',

File Metadata

Mime Type
text/plain
Expires
Wed, May 22, 3:34 AM (1 w, 5 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6305459
Default Alt Text
D18624.diff (2 KB)

Event Timeline