From 6c5fcdfbe3594b7311ab0bea417fc68f2eb9337d Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Sun, 14 Oct 2018 22:49:10 +0200 Subject: Revert "Bug 1495741 - memory issues: Avoid copying stuff in the webservice layer so much" Fix an "Unexpected Error" message when viewing a bug. This reverts commit 5688d0e712b85bc892ce405a1b79e3571f6d6d0f. Signed-off-by: Florian Pritz --- Bugzilla/WebService/JSON.pm | 64 --------------------------------------------- 1 file changed, 64 deletions(-) delete mode 100644 Bugzilla/WebService/JSON.pm (limited to 'Bugzilla/WebService/JSON.pm') diff --git a/Bugzilla/WebService/JSON.pm b/Bugzilla/WebService/JSON.pm deleted file mode 100644 index f670d1fd9..000000000 --- a/Bugzilla/WebService/JSON.pm +++ /dev/null @@ -1,64 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. -# -# This Source Code Form is "Incompatible With Secondary Licenses", as -# defined by the Mozilla Public License, v. 2.0. - -package Bugzilla::WebService::JSON; -use 5.10.1; -use Moo; - -use Bugzilla::Logging; -use Bugzilla::WebService::JSON::Box; -use JSON::MaybeXS; -use Scalar::Util qw(refaddr blessed); -use Package::Stash; - -use constant Box => 'Bugzilla::WebService::JSON::Box'; - -has 'json' => ( - init_arg => undef, - is => 'lazy', - handles => {_encode => 'encode', _decode => 'decode'}, -); - -sub encode { - my ($self, $value) = @_; - return Box->new(json => $self, value => $value); -} - -sub decode { - my ($self, $box) = @_; - - if (blessed($box) && $box->isa(Box)) { - return $box->value; - } - else { - return $self->_decode($box); - } -} - -sub _build_json { JSON::MaybeXS->new } - -# delegation all the json options to the real json encoder. -{ - my @json_methods = qw( - utf8 ascii pretty canonical - allow_nonref allow_blessed convert_blessed - ); - my $stash = Package::Stash->new(__PACKAGE__); - foreach my $method (@json_methods) { - my $symbol = '&' . $method; - $stash->add_symbol( - $symbol => sub { - my $self = shift; - $self->json->$method(@_); - return $self; - } - ); - } -} - - -1; -- cgit v1.2.3-24-g4f1b