Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
bugzilla
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
etersoft
bugzilla
Commits
27a7d352
Commit
27a7d352
authored
Aug 09, 2013
by
Frédéric Buclin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug 898830: Improve loading time of show_bug.cgi
r=sgreen a=justdave
parent
f1b5390e
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
33 additions
and
39 deletions
+33
-39
Attachment.pm
Bugzilla/Attachment.pm
+27
-35
User.pm
Bugzilla/User.pm
+1
-2
Util.pm
Bugzilla/Util.pm
+5
-2
No files found.
Bugzilla/Attachment.pm
View file @
27a7d352
...
...
@@ -126,8 +126,7 @@ the ID of the bug to which the attachment is attached
=cut
sub
bug_id
{
my
$self
=
shift
;
return
$self
->
{
bug_id
};
return
$_
[
0
]
->
{
bug_id
};
}
=over
...
...
@@ -141,11 +140,8 @@ the bug object to which the attachment is attached
=cut
sub
bug
{
my
$self
=
shift
;
require
Bugzilla::
Bug
;
$self
->
{
bug
}
||=
Bugzilla::
Bug
->
new
({
id
=>
$self
->
bug_id
,
cache
=>
1
});
return
$self
->
{
bug
};
return
$_
[
0
]
->
{
bug
}
//
=
Bugzilla::
Bug
->
new
({
id
=>
$_
[
0
]
->
bug_id
,
cache
=>
1
});
}
=over
...
...
@@ -159,8 +155,7 @@ user-provided text describing the attachment
=cut
sub
description
{
my
$self
=
shift
;
return
$self
->
{
description
};
return
$_
[
0
]
->
{
description
};
}
=over
...
...
@@ -174,8 +169,7 @@ the attachment's MIME media type
=cut
sub
contenttype
{
my
$self
=
shift
;
return
$self
->
{
mimetype
};
return
$_
[
0
]
->
{
mimetype
};
}
=over
...
...
@@ -189,9 +183,8 @@ the user who attached the attachment
=cut
sub
attacher
{
my
$self
=
shift
;
return
$self
->
{
attacher
}
||=
new
Bugzilla::
User
({
id
=>
$self
->
{
submitter_id
},
cache
=>
1
});
return
$_
[
0
]
->
{
attacher
}
//
=
new
Bugzilla::
User
({
id
=>
$_
[
0
]
->
{
submitter_id
},
cache
=>
1
});
}
=over
...
...
@@ -205,8 +198,7 @@ the date and time on which the attacher attached the attachment
=cut
sub
attached
{
my
$self
=
shift
;
return
$self
->
{
creation_ts
};
return
$_
[
0
]
->
{
creation_ts
};
}
=over
...
...
@@ -220,8 +212,7 @@ the date and time on which the attachment was last modified.
=cut
sub
modification_time
{
my
$self
=
shift
;
return
$self
->
{
modification_time
};
return
$_
[
0
]
->
{
modification_time
};
}
=over
...
...
@@ -235,8 +226,7 @@ the name of the file the attacher attached
=cut
sub
filename
{
my
$self
=
shift
;
return
$self
->
{
filename
};
return
$_
[
0
]
->
{
filename
};
}
=over
...
...
@@ -250,8 +240,7 @@ whether or not the attachment is a patch
=cut
sub
ispatch
{
my
$self
=
shift
;
return
$self
->
{
ispatch
};
return
$_
[
0
]
->
{
ispatch
};
}
=over
...
...
@@ -265,8 +254,7 @@ whether or not the attachment is obsolete
=cut
sub
isobsolete
{
my
$self
=
shift
;
return
$self
->
{
isobsolete
};
return
$_
[
0
]
->
{
isobsolete
};
}
=over
...
...
@@ -280,8 +268,7 @@ whether or not the attachment is private
=cut
sub
isprivate
{
my
$self
=
shift
;
return
$self
->
{
isprivate
};
return
$_
[
0
]
->
{
isprivate
};
}
=over
...
...
@@ -298,8 +285,7 @@ matches, because this will return a value even if it's matched by the generic
=cut
sub
is_viewable
{
my
$self
=
shift
;
my
$contenttype
=
$self
->
contenttype
;
my
$contenttype
=
$_
[
0
]
->
contenttype
;
my
$cgi
=
Bugzilla
->
cgi
;
# We assume we can view all text and image types.
...
...
@@ -373,7 +359,7 @@ the length (in bytes) of the attachment content
sub
datasize
{
my
$self
=
shift
;
return
$self
->
{
datasize
}
if
exists
$self
->
{
datasize
};
return
$self
->
{
datasize
}
if
defined
$self
->
{
datasize
};
# If we have already retrieved the data, return its size.
return
length
(
$self
->
{
data
})
if
exists
$self
->
{
data
};
...
...
@@ -416,11 +402,8 @@ flags that have been set on the attachment
=cut
sub
flags
{
my
$self
=
shift
;
# Don't cache it as it must be in sync with ->flag_types.
$self
->
{
flags
}
=
[
map
{
@
{
$_
->
{
flags
}}
}
@
{
$self
->
flag_types
}];
return
$self
->
{
flags
};
return
$_
[
0
]
->
{
flags
}
=
[
map
{
@
{
$_
->
{
flags
}}
}
@
{
$_
[
0
]
->
flag_types
}];
}
=over
...
...
@@ -443,8 +426,7 @@ sub flag_types {
component_id
=>
$self
->
bug
->
component_id
,
attach_id
=>
$self
->
id
};
$self
->
{
flag_types
}
=
Bugzilla::
Flag
->
_flag_types
(
$vars
);
return
$self
->
{
flag_types
};
return
$self
->
{
flag_types
}
=
Bugzilla::
Flag
->
_flag_types
(
$vars
);
}
###############################
...
...
@@ -677,7 +659,7 @@ sub get_attachments_by_bug {
# To avoid $attachment->flags to run SQL queries itself for each
# attachment listed here, we collect all the data at once and
# populate $attachment->{flags} ourselves.
# We also load all attachers at once for the same reason.
# We also load all attachers a
nd datasizes a
t once for the same reason.
if
(
$vars
->
{
preload
})
{
# Preload flags.
$_
->
{
flags
}
=
[]
foreach
@$attachments
;
...
...
@@ -699,6 +681,16 @@ sub get_attachments_by_bug {
foreach
my
$attachment
(
@$attachments
)
{
$attachment
->
{
attacher
}
=
$user_map
{
$attachment
->
{
submitter_id
}};
}
# Preload datasizes.
my
$sizes
=
$dbh
->
selectall_hashref
(
'SELECT attach_id, LENGTH(thedata) AS size
FROM attachments LEFT JOIN attach_data ON attach_id = id
WHERE bug_id = ?'
,
'attach_id'
,
undef
,
$bug
->
id
);
# Force the size of attachments not in the DB to be recalculated.
$_
->
{
datasize
}
=
$sizes
->
{
$_
->
id
}
->
{
size
}
||
undef
foreach
@$attachments
;
}
return
$attachments
;
}
...
...
Bugzilla/User.pm
View file @
27a7d352
...
...
@@ -825,8 +825,7 @@ sub in_group_id {
sub
groups_with_icon
{
my
$self
=
shift
;
my
@groups
=
grep
{
$_
->
icon_url
}
@
{
$self
->
groups
};
return
\
@groups
;
return
$self
->
{
groups_with_icon
}
//
=
[
grep
{
$_
->
icon_url
}
@
{
$self
->
groups
}];
}
sub
get_products_by_permission
{
...
...
Bugzilla/Util.pm
View file @
27a7d352
...
...
@@ -71,7 +71,10 @@ sub html_quote {
$var
=~
s/"/"/g
;
# Obscure '@'.
$var
=~
s/\@/\@/g
;
if
(
Bugzilla
->
params
->
{
'utf8'
})
{
state
$use_utf8
=
Bugzilla
->
params
->
{
'utf8'
};
if
(
$use_utf8
)
{
# Remove the following characters because they're
# influencing BiDi:
# --------------------------------------------------------
...
...
@@ -93,7 +96,7 @@ sub html_quote {
# |U+200e|Left-To-Right Mark |0xe2 0x80 0x8e |
# |U+200f|Right-To-Left Mark |0xe2 0x80 0x8f |
# --------------------------------------------------------
$var
=~
s/[\x{202a}-\x{202e}]//g
;
$var
=~
tr
/\x{202a}-\x{202e}/
/
d
;
}
return
$var
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment