Browse Source

minor optimizations

Nicolas Cannasse 9 years ago
parent
commit
323dc418ca
3 changed files with 7 additions and 7 deletions
  1. 2 2
      src/generators/hl2c.ml
  2. 4 4
      std/haxe/crypto/Md5.hx
  3. 1 1
      std/haxe/crypto/Sha1.hx

+ 2 - 2
src/generators/hl2c.ml

@@ -684,7 +684,7 @@ let write_c version file (code:code) =
 				sexpr "%s->%s = %s" (reg obj) (ident name) (rcast v t)
 			| HVirtual vp ->
 				let name, nid, t = vp.vfields.(fid) in
-				let dset = sprintf "hl_dyn_set%s((vdynamic*)%s,%ld/*%s*/%s,%s)" (dyn_prefix t) (reg obj) (hash nid) name (type_value_opt (rtype v)) (reg v) in
+				let dset = sprintf "hl_dyn_set%s(%s->value,%ld/*%s*/%s,%s)" (dyn_prefix t) (reg obj) (hash nid) name (type_value_opt (rtype v)) (reg v) in
 				(match t with
 				| HFun _ -> expr dset
 				| _ -> sexpr "if( hl_vfields(%s)[%d] ) *(%s*)(hl_vfields(%s)[%d]) = (%s)%s; else %s" (reg obj) fid (ctype t) (reg obj) fid (ctype t) (reg v) dset)
@@ -699,7 +699,7 @@ let write_c version file (code:code) =
 				sexpr "%s%s->%s" (rassign r t) (reg obj) (ident name)
 			| HVirtual v ->
 				let name, nid, t = v.vfields.(fid) in
-				let dget = sprintf "(%s)hl_dyn_get%s((vdynamic*)%s,%ld/*%s*/%s)" (ctype t) (dyn_prefix t) (reg obj) (hash nid) name (type_value_opt t) in
+				let dget = sprintf "(%s)hl_dyn_get%s(%s->value,%ld/*%s*/%s)" (ctype t) (dyn_prefix t) (reg obj) (hash nid) name (type_value_opt t) in
 				(match t with
 				| HFun _ -> sexpr "%s%s" (rassign r t) dget
 				| _ -> sexpr "%shl_vfields(%s)[%d] ? (*(%s*)(hl_vfields(%s)[%d])) : %s" (rassign r t) (reg obj) fid (ctype t) (reg obj) fid dget)

+ 4 - 4
std/haxe/crypto/Md5.hx

@@ -113,11 +113,11 @@ class Md5 {
 
 		//preallocate size
 		var blksSize = nblk * 16;
-		#if (neko || cs || cpp || java)
+		#if (neko || cs || cpp || java || hl)
 		blks[blksSize - 1] = 0;
 		#end
 
-		#if !(cpp || cs) //C++ and C# will already initialize them with zeroes.
+		#if !(cpp || cs || hl) //C++ and C# will already initialize them with zeroes.
 		for( i in 0...blksSize ) blks[i] = 0;
 		#end
 
@@ -145,11 +145,11 @@ class Md5 {
 
 		//preallocate size
 		var blksSize = nblk * 16;
-		#if (neko || cs || cpp || java)
+		#if (neko || cs || cpp || java || hl)
 		blks[blksSize - 1] = 0;
 		#end
 
-		#if !(cpp || cs) //C++ and C# will already initialize them with zeroes.
+		#if !(cpp || cs || hl) //C++ and C# will already initialize them with zeroes.
 		for( i in 0...blksSize ) blks[i] = 0;
 		#end
 

+ 1 - 1
std/haxe/crypto/Sha1.hx

@@ -115,7 +115,7 @@ class Sha1 {
 			blks[i] = 0;
 		for (i in 0...s.length){
 			var p = i >> 2;
-			blks[p] |= #if !(neko || cpp || php) s.get(i) #else s.charCodeAt(i) #end << (24 - ((i & 3) << 3));
+			blks[p] |= #if !(neko || cpp || php) s.get(i) #else StringTools.fastCodeAt(s,i) #end << (24 - ((i & 3) << 3));
 		}
 		var i = s.length;
 		var p = i >> 2;