+ LocalPointer<BreakIterator> bi;
+ LocalPointer<UVector32> boundaries;
+
+ {
+ Mutex m;
+ BreakTransliterator *nonConstThis = const_cast<BreakTransliterator *>(this);
+ boundaries.moveFrom(nonConstThis->cachedBoundaries);
+ bi.moveFrom(nonConstThis->cachedBI);
+ }
+ if (bi.isNull()) {
+ bi.adoptInstead(BreakIterator::createWordInstance(Locale::getEnglish(), status));
+ }
+ if (boundaries.isNull()) {
+ boundaries.adoptInstead(new UVector32(status));
+ }
+
+ if (bi.isNull() || boundaries.isNull() || U_FAILURE(status)) {
+ return;
+ }
+