소스 검색

[cpp] Treat strings as non-complex types as far as compare goes. Use '.' not '->' for string closures

Hugh 9 년 전
부모
커밋
3a07b28863
1개의 변경된 파일2개의 추가작업 그리고 1개의 파일을 삭제
  1. 2 1
      src/generators/gencpp.ml

+ 2 - 1
src/generators/gencpp.ml

@@ -1895,6 +1895,7 @@ let ctx_cant_be_null ctx haxe_type =
 
 let is_complex_compare =  function
    | TCppScalar _ -> false
+   | TCppString  -> false
    | _ -> true
 ;;
 
@@ -2697,7 +2698,7 @@ let gen_cpp_ast_expression_tree ctx class_name func_name function_args injection
          | FuncThis(field) ->
               out ("this->" ^ (cpp_member_name_of field) ^ "_dyn()");
          | FuncInstance(expr,objC,field) ->
-              gen expr; out ("->" ^ (cpp_member_name_of field) ^ "_dyn()");
+              gen expr; out ((if expr.cpptype=TCppString then "." else "->") ^ (cpp_member_name_of field) ^ "_dyn()");
          | FuncInterface(expr,clazz,field) ->
               gen expr;
               out ("__Field(" ^ strq field.cf_name ^ ", hx::paccDynamic)")