Closed Bug 88509 Opened 23 years ago Closed 23 years ago

accessible/src/nsHTMLSelectAccessible.cpp fails to build with --disable-bidi

Categories

(Core :: Layout: Text and Fonts, defect)

x86
All
defect
Not set
blocker

Tracking

()

RESOLVED FIXED

People

(Reporter: timecop, Assigned: mozilla)

References

Details

(Keywords: access)

Attachments

(3 files)

Tt uses one of HTML layout atoms which is only defined when IBMBIDI is enabled.
This causes a build failure.
Patch follows.
Two things here:

1. Is accessible dependendant on this function to work? If so, it should not be 
IBMBIDI in layout.

2. Why are you building with --disable-bidi? The intent was that once BIDI was 
turned on, it would never be turned off. We have even talked about starting to 
remove the #ifdefs.
I cannot answer 1) since I did not write that code, and made a "educated guess"
as far as that function needing to be wrapped in #ifdef IBMBIDI because the atom
it was using was also in IBMBIDI

and to answer 2), no reason really, just a default build line carried over from
a few months ago. I don't have any arabic/hebrew fonts anyway, I am not sure
having it enabled would allow me any extra features...
I think the correct solution here is to move the listControlFrame atom out of
|#ifdef IBMBIDI| and do the same for nsListControlFrame::GetFrameType.
I agree with dbaron, and since it was my regression I will take care of that. I
think this actually points to a bigger issue of why all the layout frames don't
have atoms defined for them. But that is a discussion for the layout folks, and
not really appropriate for this bug.

feel free to re-assign to me.
.
Assignee: mkaply → jgaunt
Keywords: approval, patch, review
*** Bug 88762 has been marked as a duplicate of this bug. ***
looking for r/sr  cc'ing attinasi
Status: NEW → ASSIGNED
um, John... that patch lands me with:

c++ -o nsListControlFrame.o -c -DOSTYPE=\"Linux2.4\" -DOSARCH=\"Linux\" -DOJI 
-D_IMPL_NS_HTML -DENDER_LITE   -I../../../../dist/include 
-I../../../../dist/include -I/usr/src/moz/mozilla/dist/include/nspr      
-I./../../../base/src -I./../../base/src -I./../../style/src 
-I./../../../xul/base/src  -I/usr/X11R6/include   -fPIC  -I/usr/X11R6/include 
-fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith 
-Wbad-function-cast -Wcast-align -Woverloaded-virtual -Wsynth -pedantic 
-Wno-long-long -pipe -fshort-wchar -pthread -O3  -DNDEBUG -DTRIMMED 
-I/usr/X11R6/include -DMOZILLA_CLIENT -include ../../../../config-defs.h 
-Wp,-MD,.deps/nsListControlFrame.pp nsListControlFrame.cpp
nsListControlFrame.cpp: In method `nsresult nsListControlFrame::Paint
(nsIPresContext *, nsIRenderingContext &, const nsRect &,
nsFramePaintLayer)':
nsListControlFrame.cpp:454: warning: unused variable `nsIStyleContext
*sc'
nsListControlFrame.cpp: In method `void
nsListControlFrame::MultipleSelection (int, int)':
nsListControlFrame.cpp:1455: warning: `PRInt32 i' might be used
uninitialized in this function
nsListControlFrame.cpp: In method `void
nsListControlFrame::SetContentSelected (int, nsIContent *, int, int,
nsIPresShell *)':
nsListControlFrame.cpp:2028: warning: unused variable `PRBool
isSelected'
nsListControlFrame.cpp: In method `nsresult
nsListControlFrame::UpdateSelection (int, int, nsIContent *)':
nsListControlFrame.cpp:2803: warning: unused variable `PRBool changed'
nsListControlFrame.cpp: At top level:
nsListControlFrame.cpp:3207: no `nsresult
nsListControlFrame::GetFrameType (nsIAtom **) const' member function
declared in class `nsListControlFrame'
nsListControlFrame.cpp: In method `void
nsListControlFrame::GetScrollableView (nsIScrollableView *&)':
nsListControlFrame.cpp:3483: warning: unused variable `nsresult rv'
../../../../dist/include/nsBufferHandle.h: At top level:
nsListControlFrame.cpp:1948: warning: `int cnt' defined but not used
gmake[5]: *** [nsListControlFrame.o] Error 1

anyway, as mkaply points out, a better solution would appear to be removing 
the now outdated --disable-bidi from .mozconfig, which is where I'm headed 
now....
Whoops, forgot to look into the .h, the declaration was wrapped in #ifdef's as 
well. 

posted a diff, although I'm suspicous of it because I have weird thing going on 
in my tree right now. Re-pulling to fix things.

Chris: I would suggest you file a new bug as "Remove -disable-bidi". Where you 
pull all the ifdef's in addition to disabling the option. In the context of this 
bug, currently, its kinda like swatting a fly with a buick.
Whiteboard: PDT+, needs r=/sr=
Keywords: access
Whiteboard: PDT+, needs r=/sr= → PDT+, needs sr=
sr=sfraser
Blocks: 86517
John, as much as I like taking out Mosquitos with a tactical nuke... see bug 
89203 for removal of --disable-bidi; all 105 files of it so far.
Whiteboard: PDT+, needs sr= → PDT+
It appears this bug has the r and the sr.  Can this be checked in?  Thanks. 
I'll update the status whiteboard with this status for a quick summary.
Whiteboard: PDT+ → [PDT+] Have R and SR
This has been checked into the 0.9.2 branch wed 4 july.

needs to go into trunk. Will get that in ASAP.
Keywords: approval, review
Whiteboard: [PDT+] Have R and SR → landed on branch, needs to go in trunk
Checked into the trunk 7/10
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Whiteboard: landed on branch, needs to go in trunk
Blocks: 95819
Component: Layout: BiDi Hebrew & Arabic → Layout: Text
QA Contact: giladehven → layout.fonts-and-text
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: