소스 검색

Fix for issue #577 StringBlock cannot be cloned with the cloner because
it is package private and the cloner cannot instantiate one directly.
Since it is extremely unlikely (read: impossible) that there would ever
be shared StringBlock references between BitmapText objects then it is safe
to just clone it directly.
It is important to note that BitmapText never really did support clone
before and only pretended to... so this wasn't really a regression.

Paul Speed 8 년 전
부모
커밋
e879a0e142
1개의 변경된 파일6개의 추가작업 그리고 1개의 파일을 삭제
  1. 6 1
      jme3-core/src/main/java/com/jme3/font/BitmapText.java

+ 6 - 1
jme3-core/src/main/java/com/jme3/font/BitmapText.java

@@ -95,7 +95,12 @@ public class BitmapText extends Node {
         for( int i = 0; i < textPages.length; i++ ) {
             textPages[i] = cloner.clone(textPages[i]);
         }
-        this.block = cloner.clone(block);
+        
+        // Cannot use the cloner to clone the StringBlock because it
+        // is package private... so we'll forgo the (probably unnecessary)
+        // reference fixup in this case and just clone it directly.
+        //this.block = cloner.clone(block);
+        this.block = block != null ? block.clone() : null;
 
         // Change in behavior: The 'letters' field was not cloned or recreated
         // before.  I'm not sure how this worked and suspect BitmapText was just