Merge branch 'wip-MDL-60313-master' of git://github.com/marinaglancy/moodle
authorEloy Lafuente (stronk7) <stronk7@moodle.org>
Thu, 19 Oct 2017 20:48:40 +0000 (22:48 +0200)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Thu, 19 Oct 2017 20:48:40 +0000 (22:48 +0200)
lib/thirdpartylibs.xml
lib/xhprof/CREDITS
lib/xhprof/LICENSE
lib/xhprof/README
lib/xhprof/readme_moodle.txt
lib/xhprof/xhprof_html/css/xhprof.css
lib/xhprof/xhprof_lib/display/typeahead_common.php
lib/xhprof/xhprof_lib/display/xhprof.php
lib/xhprof/xhprof_lib/utils/callgraph_utils.php
lib/xhprof/xhprof_lib/utils/xhprof_lib.php
lib/xhprof/xhprof_lib/utils/xhprof_runs.php

index 14c2312..fc0531b 100644 (file)
     <location>xhprof</location>
     <name>XHProf</name>
     <license>Apache</license>
-    <version>0.9.2</version>
+    <version>0.9.4</version>
     <licenseversion>2.0</licenseversion>
   </library>
   <library>
index fd03220..1b9af6b 100644 (file)
@@ -1,5 +1,7 @@
 Originally developed at Facebook, XHProf was open sourced in Mar, 2009.
 
+XHProf is now maintained by Phacility.
+
 Creators:
   Changhao Jiang
   Kannan Muthukkaruppan
@@ -9,4 +11,3 @@ Creators:
 Additional Contributors:
   George Cabrera      - UI enhancements
   Paul Saab           - FreeBSD port
-
index f433b1a..d9a10c0 100644 (file)
@@ -1,4 +1,3 @@
-
                                  Apache License
                            Version 2.0, January 2004
                         http://www.apache.org/licenses/
index 309dcfe..a8c15fa 100644 (file)
@@ -3,5 +3,3 @@ For installation and usage notes refer to:
 
 To view the latest version of the doc, go to:
   http://pecl.php.net/package/xhprof ---> [View Documentation]
-
-
index c9b85f0..c2daa35 100644 (file)
@@ -1,4 +1,4 @@
-Description of XHProf 0.9.2 library/viewer import into Moodle
+Description of XHProf 0.9.4 library/viewer import into Moodle
 
 Removed (commit #1):
  * .arcconfig - Definitions for arcanist/phabricator removed completely
@@ -19,6 +19,7 @@ Our changes:  Look for "moodle" in code (commit #3 - always mimic from current m
  * xhprof_html/typeahead.php -|
  * xhprof_html/css/xhprof.css: Minor tweaks to report styles
  * xhprof_lib/utils/callgraph_utils.php: Modified to use $CFG->pathtodot
+ * xhprof_lib/utils/xhprof_runs.php: applied patch from https://github.com/phacility/xhprof/pull/99
 
 TODO:
  * improvements to the listing mode: various commodity details like:
@@ -37,3 +38,4 @@ TODO:
 20110318 - MDL-26891 - Eloy Lafuente (stronk7): Implemented earlier profiling runs
 20130621 - MDL-39733 - Eloy Lafuente (stronk7): Export & import of profiling runs
 20160721 - MDL-55292 - Russell Smith (mr-russ): Add support for tideways profiler collection for PHP7
+20171002 - MDL-60313 - Marina Glancy (marinaglancy): Upgrade to 0.9.4 release; patched for PHP7.2
\ No newline at end of file
index fc727d9..250b990 100644 (file)
@@ -85,4 +85,3 @@ ul.xhprof_actions li a:hover {
   background:#3B5998 none repeat scroll 0 0;
   color:#FFFFFF;
 }
-
index 7b1098f..0cd304d 100644 (file)
@@ -77,4 +77,3 @@ if (in_array($q, $functions)) {
 foreach ($functions as $f) {
   echo $f."\n";
 }
-
index b6a7306..a57ec17 100644 (file)
@@ -42,7 +42,7 @@ require_once $GLOBALS['XHPROF_LIB_ROOT'].'/utils/xhprof_runs.php';
  * Our coding convention disallows relative paths in hrefs.
  * Get the base URL path from the SCRIPT_NAME.
  */
-$base_path = rtrim(dirname($_SERVER['SCRIPT_NAME']), "/");
+$base_path = rtrim(dirname($_SERVER['SCRIPT_NAME']), '/\\');
 
 
 /**
@@ -58,7 +58,7 @@ $base_path = rtrim(dirname($_SERVER['SCRIPT_NAME']), "/");
 function xhprof_include_js_css($ui_dir_url_path = null) {
 
   if (empty($ui_dir_url_path)) {
-    $ui_dir_url_path = rtrim(dirname($_SERVER['SCRIPT_NAME']), "/");
+    $ui_dir_url_path = rtrim(dirname($_SERVER['SCRIPT_NAME']), '/\\');
   }
 
   // style sheets
@@ -621,7 +621,7 @@ function print_td_num($num, $fmt_func, $bold=false, $attributes=null) {
 
   $class = get_print_class($num, $bold);
 
-  if (!empty($fmt_func)) {
+  if (!empty($fmt_func) && is_numeric($num) ) {
     $num = call_user_func($fmt_func, $num);
   }
 
@@ -1003,7 +1003,7 @@ function print_pc_array($url_params, $results, $base_ct, $base_info, $parent,
 
 function print_source_link($info) {
   if (strncmp($info['fn'], 'run_init', 8) && $info['fn'] !== 'main()') {
-       if (defined('XHPROF_SYMBOL_LOOKUP_URL')) {
+    if (defined('XHPROF_SYMBOL_LOOKUP_URL')) {
       $link = xhprof_render_link(
         'source',
         XHPROF_SYMBOL_LOOKUP_URL . '?symbol='.rawurlencode($info["fn"]));
index 93ccaa6..3a70aa0 100644 (file)
@@ -113,7 +113,7 @@ function xhprof_generate_image_by_dot($dot_script, $type) {
   $cmd = (!empty($CFG->pathtodot) ? $CFG->pathtodot : 'dot') . ' -T' . $type;
   // End moodle modification.
 
-  $process = proc_open($cmd, $descriptorspec, $pipes, "/tmp", array());
+  $process = proc_open( $cmd, $descriptorspec, $pipes, sys_get_temp_dir(), array( 'PATH' => getenv( 'PATH' ) ) );
   if (is_resource($process)) {
     fwrite($pipes[0], $dot_script);
     fclose($pipes[0]);
@@ -382,7 +382,7 @@ function xhprof_generate_dot_script($raw_data, $threshold, $source, $page,
 
       $result .= "N" . $sym_table[$parent]["id"] . " -> N"
                  . $sym_table[$child]["id"];
-      $result .= "[arrowsize=$arrow_size, style=\"setlinewidth($linewidth)\","
+      $result .= "[arrowsize=$arrow_size, color=grey, style=\"setlinewidth($linewidth)\","
                  ." label=\""
                  .$label."\", headlabel=\"".$headlabel
                  ."\", taillabel=\"".$taillabel."\" ]";
index 12935df..4a07e90 100644 (file)
@@ -98,7 +98,7 @@ function init_metrics($xhprof_data, $rep_symbol, $sort, $diff_report = false) {
 
   $pc_stats = $stats;
 
-  $possible_metrics = xhprof_get_possible_metrics($xhprof_data);
+  $possible_metrics = xhprof_get_possible_metrics();
   foreach ($possible_metrics as $metric => $desc) {
     if (isset($xhprof_data["main()"][$metric])) {
       $metrics[] = $metric;
@@ -905,6 +905,10 @@ function xhprof_param_init($params) {
       exit();
     }
 
+    if ($k === 'run') {
+      $p = implode(',', array_filter(explode(',', $p), 'ctype_xdigit'));
+    }
+
     // create a global variable using the parameter name.
     $GLOBALS[$k] = $p;
   }
@@ -939,4 +943,3 @@ function xhprof_get_matching_functions($q, $xhprof_data) {
 
   return ($res);
 }
-
index cde5ff5..115645b 100644 (file)
@@ -95,8 +95,7 @@ class XHProfRuns_Default implements iXHProfRuns {
       $dir = ini_get("xhprof.output_dir");
       if (empty($dir)) {
 
-        // some default that at least works on unix...
-        $dir = "/tmp";
+        $dir = sys_get_temp_dir();
 
         xhprof_error("Warning: Must specify directory location for XHProf runs. ".
                      "Trying {$dir} as default. You can either pass the " .
@@ -150,7 +149,9 @@ class XHProfRuns_Default implements iXHProfRuns {
     if (is_dir($this->dir)) {
         echo "<hr/>Existing runs:\n<ul>\n";
         $files = glob("{$this->dir}/*.{$this->suffix}");
-        usort($files, create_function('$a,$b', 'return filemtime($b) - filemtime($a);'));
+        usort($files, function($a, $b) {
+            return filemtime($b) - filemtime($a);
+        });
         foreach ($files as $file) {
             list($run,$source) = explode('.', basename($file));
             echo '<li><a href="' . htmlentities($_SERVER['SCRIPT_NAME'])