浏览代码

[php] fix Serializer/Unserializer performance (closes #8943)

Aleksandr Kuzmenko 5 年之前
父节点
当前提交
826ae1b087
共有 2 个文件被更改,包括 8 次插入0 次删除
  1. 6 0
      std/haxe/Serializer.hx
  2. 2 0
      std/haxe/Unserializer.hx

+ 6 - 0
std/haxe/Serializer.hx

@@ -341,6 +341,12 @@ class Serializer {
 						buf.add(chars.length);
 						buf.add(":");
 						buf.add(chars);
+						#elseif php
+						var chars = new String(php.Global.base64_encode(v.getData()));
+						buf.add("s");
+						buf.add(chars.length);
+						buf.add(":");
+						buf.add(chars);
 						#else
 						buf.add("s");
 						buf.add(Math.ceil((v.length * 8) / 6));

+ 2 - 0
std/haxe/Unserializer.hx

@@ -388,6 +388,8 @@ class Unserializer {
 					throw "Invalid bytes length";
 				#if neko
 				var bytes = haxe.io.Bytes.ofData(base_decode(untyped buf.substr(pos, len).__s, untyped BASE64.__s));
+				#elseif php
+				var bytes = haxe.io.Bytes.ofData(php.Global.base64_decode(buf.substr(pos, len)));
 				#else
 				var codes = CODES;
 				if (codes == null) {